package com.sf.javase.anno; import java.lang.annotation.Annotation; import java.lang.reflect.Field; /** * 通过注解 构造对表的查询语句 * 通过反射来获取注解中的值 * 然后进行逻辑处理 (注解+反射) */ public class TestStudent { public static void main(String[] args) { // 获取类对象 Class studentCls = Student.class; // 接收类对象的所有注解 Annotation[] annotations = studentCls.getAnnotations(); // 能够指定注解的类型 拿到注解对象 // @Table("student") Table table = studentCls.getAnnotation(Table.class); // 可以通过注解对象 获取注解中配置的数据 String tableName = table.value(); System.out.println(tableName); // 获取全部的属性 id name Field[] fields = studentCls.getDeclaredFields(); StringBuffer buffer = new StringBuffer(); buffer.append("select "); for (Field field : fields) { // 通过属性来获取注解 Column column = field.getAnnotation(Column.class); String columnName = column.columnName(); // String type = column.columnType(); buffer.append(columnName); buffer.append(","); } // select id,name, buffer.deleteCharAt(buffer.length() - 1); // select id,name buffer.append(" from "); buffer.append(tableName); // select id,name from student System.out.println(buffer); } }