我之前竟然没有记录过这个,记录一下
.
Mybatis小总结
maven依赖
1 | <!--jdbc 操作数据库--> |
分页插件
1 | import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; |
自动填充
实体类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
public class Record implements Serializable {
// ...
(fill = FieldFill.INSERT)
private Date dateCreated;// 创建时间
(fill = FieldFill.INSERT_UPDATE)
private Date lastModified;// 更新时间
// ...
}配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.taopanfeng.bill.context.NickNameHolder;
// import com.taopanfeng.bill.context.TenantIdHolder;
import com.taopanfeng.bill.context.UserIdHolder;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 字段填充处理器
*
* @author 陶攀峰
* @date 2022-04-10 17:06
*/
public class FieldFillHandler implements MetaObjectHandler {
// private static final String TENANT_ID_FIELD_NAME = "tenantId";
private static final String DATE_CREATED_FIELD_NAME = "dateCreated";
private static final String LAST_MODIFIED_FIELD_NAME = "lastModified";
// private static final String TIME_FIELD_NAME = "billtime";
private static final String CREATE_BY_FIELD_NAME = "createBy";
private static final String CREATE_BY_NAME_FIELD_NAME = "createByName";
// private static final String UPDATE_BY_FIELD_NAME = "updateBy";
// private static final String UPDATE_BY_NAME_FIELD_NAME = "updateByName";
/**
* 插入时的填充策略
*/
public void insertFill(MetaObject metaObject) {
// if (metaObject.hasGetter(TENANT_ID_FIELD_NAME)) {
// this.setFieldValByName(TENANT_ID_FIELD_NAME, TenantIdHolder.get(), metaObject);
// }
this.setFieldValByName(DATE_CREATED_FIELD_NAME, new Date(), metaObject);
this.setFieldValByName(LAST_MODIFIED_FIELD_NAME, new Date(), metaObject);
// if (metaObject.getValue(TIME_FIELD_NAME) == null) {
// this.setFieldValByName(TIME_FIELD_NAME, new Date(), metaObject);
// }
if (metaObject.hasGetter(CREATE_BY_FIELD_NAME)) {
this.setFieldValByName(CREATE_BY_FIELD_NAME, UserIdHolder.get(), metaObject);
this.setFieldValByName(CREATE_BY_NAME_FIELD_NAME, NickNameHolder.get(), metaObject);
// this.setFieldValByName(UPDATE_BY_FIELD_NAME, UserIdHolder.get(), metaObject);
// this.setFieldValByName(UPDATE_BY_NAME_FIELD_NAME, NickNameHolder.get(), metaObject);
}
}
/**
* 更新时的填充策略
*/
public void updateFill(MetaObject metaObject) {
this.setFieldValByName(LAST_MODIFIED_FIELD_NAME, new Date(), metaObject);
// if (metaObject.hasGetter(UPDATE_BY_FIELD_NAME)) {
// this.setFieldValByName(UPDATE_BY_FIELD_NAME, UserIdHolder.get(), metaObject);
// this.setFieldValByName(UPDATE_BY_NAME_FIELD_NAME, NickNameHolder.get(), metaObject);
// }
}
}