• java-使用反射实现ORM映射


    自定义两个注解

     1 package com.moon.ROM;
     2 
     3 import java.lang.annotation.ElementType;
     4 import java.lang.annotation.Retention;
     5 import java.lang.annotation.RetentionPolicy;
     6 import java.lang.annotation.Target;
     7 
     8 @Target(ElementType.FIELD)
     9 @Retention(RetentionPolicy.RUNTIME)
    10 public @interface SexFileAnnotation {
    11     String name();
    12     String type();
    13     int length();
    14 
    15 }
     1 package com.moon.ROM;
     2 
     3 import java.lang.annotation.ElementType;
     4 import java.lang.annotation.Retention;
     5 import java.lang.annotation.RetentionPolicy;
     6 import java.lang.annotation.Target;
     7 
     8 @Target(ElementType.TYPE)
     9 @Retention(RetentionPolicy.RUNTIME)
    10 public @interface SexTable {
    11     String value();
    12 
    13 }
     1 package com.moon.ROM;
     2 @SexTable("tb_student")
     3 public class SxtStudent {
     4     @SexFileAnnotation(name ="studentName" ,type = "vachar",length = 10)
     5     private String studentName;
     6     @SexFileAnnotation(name="age",type = "int",length = 3)
     7     private int age;
     8     @SexFileAnnotation(name = "id",type = "int",length = 5)
     9     private int id;
    10 
    11     public String getStudentName() {
    12         return studentName;
    13     }
    14 
    15     public void setStudentName(String studentName) {
    16         this.studentName = studentName;
    17     }
    18 
    19     public int getAge() {
    20         return age;
    21     }
    22 
    23     public void setAge(int age) {
    24         this.age = age;
    25     }
    26 
    27     public int getId() {
    28         return id;
    29     }
    30 
    31     public void setId(int id) {
    32         this.id = id;
    33     }
    34 }
     1 package com.moon.ROM;
     2 
     3 import java.lang.reflect.Field;
     4 
     5 public class Test {
     6     public static void main(String[] args) {
     7         try {
     8             Class clazz = Class.forName("com.moon.ROM.SxtStudent");
     9 //            Annotation[] annotations = clazz.getAnnotations();
    10            /* for (Annotation annotation : annotations) {
    11                 System.out.println(annotation);
    12 
    13             }*/
    14            SexTable st = (SexTable) clazz.getAnnotation(SexTable.class);
    15             Field f = clazz.getDeclaredField("studentName");
    16             SexFileAnnotation sexf = f.getAnnotation(SexFileAnnotation.class);
    17             System.out.println(sexf.name()+"---"+sexf.type()+"---"+sexf.length());
    18 
    19 
    20         } catch (Exception e) {
    21             e.printStackTrace();
    22         }
    23 
    24     }
    25 }
  • 相关阅读:
    Connected Graph
    Gerald and Giant Chess
    [NOI2009]诗人小G
    四边形不等式小结
    [NOI2007]货币兑换
    Cats Transport
    Cut the Sequence
    Fence
    The Battle of Chibi
    [Usaco2005 Dec]Cleaning Shifts
  • 原文地址:https://www.cnblogs.com/xiaoqiqistudy/p/11017388.html
Copyright © 2020-2023  润新知