Java——获取@TableField,@TableName注解的值
⼀、前⾔
总觉得写博客要形成⾃⼰的风格才⾏,不能像记流⽔账⼀样记录,⽐如⽂章有开头,过程,结尾,总结。虽说⽂章的好坏,跟排版⽆关,但是⾄少看得⼈看的舒服。所以说,要有⾃⼰的风格、⽐如,⽂章是为了记录什么,解决什么,学到了什么,总结之后给别⼈帮助。这才是挺有意思的⼀件事。
不多说,上菜。
有这么⼀个需求,程序中修改资料,或者代码⾥⾯需要修改到表的时候,不想通过多张⽇志表去记录说修改了什么,那么我定义⼀张表,存储表名,表字段,再存储修改的值这些。虽然说后期如果有需求要还原数据⽐较⿇烦,但是统⼀处理了数据,也不会需要定义那么多张表。
⼆、操作
2.1、定义⼀个实体类,
@TableName("uc_cust_lock")
public class CustLock {
/**
* 标识
*/
@TableId
@TableField("cust_lock_id")
private String custLockId;
/**
* 经纪⼈id
*/
@TableField("broker_ur_id")
private String brokerUrId;
/
**
* 组织id(经纪⼈所属组织id)
*/
@TableField("org_id")
private String orgId;
// 省略
}
2.2、获取类的信息
学习贯彻情况
豆芽怎么洗// 引⼊的Jar包
// import batisplus.annotation.TableField;
// import batisplus.annotation.TableId;
/
/ import batisplus.annotation.TableName;
// import flect.Field;
private static void getProxyPojoValue(Object object, Set<String> key1){
String id = null;
// 返回参数
HashMap<String,Object> hashMap = new HashMap<>(16);
for (String s : key1) {
Field[] fields = Class().getDeclaredFields();
for (Field field : fields) {
field.tAccessible(true);
// 获取表名
TableName table = Class().getAnnotation(TableName.class);
if (table != null) {
String tableName = table.value();
hashMap.putIfAbnt("tableName", tableName);
}
// 获取主键id
if (id == null) {
boolean isIdField = field.isAnnotationPrent(TableId.class);
if (isIdField) {
TableField tableField = Annotation(TableField.class);
怎么给c盘扩容if (s.toLowerCa().Name().toLowerCa())) {
男生发色String tableId = tableField.value();
hashMap.put(s,tableId);
id = tableId;
创新与创业
}
}餐饮规章制度
}
// 获取字段的值
质量征文腾冲热海风景区boolean isTableField = field.isAnnotationPrent(TableField.class);
if (isTableField) {
TableField tableField = Annotation(TableField.class);
if (s.toLowerCa().Name().toLowerCa())) {
String fieldValue = tableField.value();
hashMap.put(s,fieldValue);
}
}
}
}
System.out.println(hashMap);
}
2.3、Main⽅法执⾏
public static void main(String[] args) throws IllegalAccessException {
Set<String> key1= new HashSet<>();
/
/ 定义修改的值(后期可做成动态)
key1.add("brokerUrId");
// 定义主键id
key1.add("custlockid");
getProxyPojoValue(new CustLock(),key1);
}
// 结果:
// {custlockid=cust_lock_id, brokerUrId=broker_ur_id, tableName=uc_cust_lock}
三、总结:
通过getDeclaredFields,getAnnotation这两个主要关键类去获取对应的信息。