|
@@ -0,0 +1,36 @@
|
|
|
+package com.sf.javase.day20;
|
|
|
+
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+
|
|
|
+import java.lang.reflect.Field;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 反射 - 自定义注解和注解的使用
|
|
|
+ */
|
|
|
+public class T {
|
|
|
+ @Test
|
|
|
+ public void t1(){
|
|
|
+ //读取注解
|
|
|
+ Class<Student> studentClass = Student.class;
|
|
|
+ Table table = studentClass.getAnnotation(Table.class);
|
|
|
+ String tableName = table.value();
|
|
|
+ Field[] declaredFields = studentClass.getDeclaredFields();
|
|
|
+ String[] strs = new String[declaredFields.length];
|
|
|
+ int index = 0;
|
|
|
+ for (Field field : declaredFields) {
|
|
|
+ Column column = field.getAnnotation(Column.class);
|
|
|
+ strs[index++] = column.columnName();
|
|
|
+ }
|
|
|
+ /// SELECT 字段名.... FROM 表名
|
|
|
+ String sql = "SELECT ";
|
|
|
+ for (int i = 0;i<strs.length;i++){
|
|
|
+ sql += strs[i];
|
|
|
+ if(i<strs.length-1){
|
|
|
+ sql += ", ";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sql += " FROM "+tableName+";";
|
|
|
+ // SELECT t_id,t_name FROM student;
|
|
|
+ System.out.println(sql);
|
|
|
+ }
|
|
|
+}
|