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();
    }
    
  • 相关阅读:
    使用 Python 编码和解码 JSON 对象
    搞定github下载加速
    git错误:fatal: Could not read from remote repository.解决
    webstorm安装配置
    node.js下载安装
    IDEA安装小配置
    JAVA软件安装
    关于升级一般软件的一些想法
    linux 的 逻辑卷管理
    记一次内核升级。
  • 原文地址:https://www.cnblogs.com/gbhh/p/13768198.html
Copyright © 2011-2022 走看看