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();
    }
    
  • 相关阅读:
    AcWing 157. 树形地铁系统 (hash判断树同构)打卡
    AcWing 156. 矩阵 (哈希二维转一维查询)打卡
    AcWing 144. 最长异或值路径 01字典树打卡
    AcWing 143. 最大异或对 01字典树打卡
    AcWing 142. 前缀统计 字典树打卡
    AcWing 139. 回文子串的最大长度 hash打卡
    AcWing 138. 兔子与兔子 hash打卡
    常用C库函数功能及用法
    编程实现C库函数
    C语言面试题5
  • 原文地址:https://www.cnblogs.com/gbhh/p/13768198.html
Copyright © 2011-2022 走看看