反射
Java 程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。通过反射机制,我们可以通过一个对象获取到它的如下数据:
* 类:类名、类的完整路径、类上的注解……
* 成员变量:变量名、变量类型、变量值、变量上的注解……
* 方法:方法名、方法上的注解……
通用Mapper:
1. 定义注解,在实体类中分别标注表名、字段名等关键信息
2. 在使用时通过 Java 反射机制 获取到注解信息并对其进行解析,从而获取到表名、字段名等信息
3. 使用获取到的关键信息生成 SQL 语句
4. 执行 SQL 语句并返回执行结果
Insert: 表名、字段名
Delete: 表名、查询条件
Update: 表名、字段名、查询条件
Select: 字段、表名、查询条件、排序条件
例如:
/*得到类的注解*/
entity.getClass().getAnnotation(TableAttribute.class);
/*得到类的所有字段*/
Class cls = entity.getClass();
Field[] fields = cls.getDeclaredFields();
/*得到方法名*/
Method method = cls.getMethod("get" + StringUtils.captureName(fieldName));
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
通过反射得到类的方式
getClass();
.class
/*驱动*/
Class.forName("className【包名.类名】")