zoukankan      html  css  js  c++  java
  • 获取注解信息

    概述

    ORM(Object Relationship Mapping)对象关系映射

    • 类和表结构对应
    • 属性和字段对应
    • 对象和记录对应

    实例

    /**
     * 练习反射操作注解
     */
    public class Demo07 {
        public static void main(String[] args) throws Exception {
            Class c1 = Class.forName("com.gbhh.reflections.Student2");
            //通过反射获得注解
            Annotation[] annotations = c1.getAnnotations();
            for (Annotation annotation:annotations
                 ) {
                System.out.println(annotation);
            }
            //获取注释的value值
            TableGang tableGang = (TableGang)c1.getAnnotation(TableGang.class);
            String value = tableGang.value();
            System.out.println(value);
    //        获取类指定的注解
            Field f = c1.getDeclaredField("name");
            FieldGang annotation = f.getAnnotation(FieldGang.class);
            System.out.println(annotation.columnName());
            System.out.println(annotation.type());
            System.out.println(annotation.length());
    
        }
    }
    @TableGang("db_student2")
    class Student2{
        @FieldGang(columnName = "db_id",type = "int",length = 20)
        private int id;
        @FieldGang(columnName = "db_age",type = "int",length = 21)
        private int age;
        @FieldGang(columnName = "db_name",type = "varchar",length = 22)
        private String name;
        public Student2(){
    
        }
    
        public Student2(int id, int age, String name) {
            this.id = id;
            this.age = age;
            this.name = name;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    //类名的注解
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @interface TableGang{
        String value();
    }
    //属性的注解
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    @interface FieldGang{
        String columnName();
        String type();
        int length();
    }
    
  • 相关阅读:
    how to .bson file into mongodb
    celery 源生框架项目
    @property装饰器将getter方法变成了属性
    类继承实现--停车场可用车位
    vue 基于 webpack 中使用 ECharts
    windows10 docker 从C盘迁移到其他盘
    python 布隆过滤器的下载使用
    深入系统同步锁机制 GIL
    男神鹏:ubantu 18.0.4 安装go 1.10.4 和环境变量的配置以及卸载
    男神鹏:命令 'ls' 可在 '/bin/ls' 处找到
  • 原文地址:https://www.cnblogs.com/gbhh/p/13768198.html
Copyright © 2011-2022 走看看