1. 程式人生 > 其它 >Java基礎學習:註解和反射15( 反射操作註解 )

Java基礎學習:註解和反射15( 反射操作註解 )

Java基礎學習:註解和反射15

  • 反射操作註解:

    • getAnnotations:

    • getAnnotation;

 

  • 練習ORM:

    • 什麼是ORM:Object relationship Mapping:物件關係對映

    • 類和表結構對應

    • 屬性和欄位對應

    • 物件和記錄對應

       

  • 要求:利用註解和反射完成類和表結構的對映關係:

    • 通過反射自動建立表;(重點)

       


    /**
    * 練習:反射操作註解
    */
    public class Test12 {

       public static void main(String[] args) throws Exception {

           Class<?> c1 = Class.forName("com.demo.demo03.Student");

           //通過反射獲得註解
           Annotation[] annotations = c1.getAnnotations();
           for (Annotation annotation : annotations) {
               System.out.println(annotation);
          }

           //獲得註解的value的值
           TableDemo tableDemo = (TableDemo)c1.getAnnotation(TableDemo.class);
           String value=tableDemo.value();
           System.out.println(value);//db_student


           //獲得類指定的註解
           Field f = c1.getDeclaredField("name");
           FieldDemo fd=(FieldDemo)f.getAnnotation(FieldDemo.class);
           System.out.println(fd.columnName());
           System.out.println(fd.length());
           System.out.println(fd.type());



      }

    }



    @TableDemo("db_student")
    class Student{

       @FieldDemo(columnName="db_id",type="int",length=10 )
       private int id;
       @FieldDemo(columnName="db_age",type="int",length=10 )
       private int age;
       @FieldDemo(columnName="db_name",type="varchar",length=3 )
       private String name ;

       public Student() {
      }

       public Student(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) {