mybatis-plus 公共字段填充java代码
时间: 2023-07-03 15:18:39 浏览: 135
Mybatis-Plus提供了公共字段填充的功能,可以在插入和更新操作时自动填充公共字段,减少代码重复和出错的可能性。下面是Java代码实现公共字段填充的示例:
1. 创建公共字段填充器类
```java
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
// 插入时填充的字段
private static final String CREATE_TIME = "createTime";
private static final String UPDATE_TIME = "updateTime";
private static final String CREATE_BY = "createBy";
private static final String UPDATE_BY = "updateBy";
@Override
public void insertFill(MetaObject metaObject) {
// 填充创建时间和更新时间
this.strictInsertFill(metaObject, CREATE_TIME, LocalDateTime::now, LocalDateTime.class);
this.strictInsertFill(metaObject, UPDATE_TIME, LocalDateTime::now, LocalDateTime.class);
// 填充创建人和更新人
this.strictInsertFill(metaObject, CREATE_BY, "system", String.class);
this.strictInsertFill(metaObject, UPDATE_BY, "system", String.class);
}
@Override
public void updateFill(MetaObject metaObject) {
// 填充更新时间
this.strictUpdateFill(metaObject, UPDATE_TIME, LocalDateTime::now, LocalDateTime.class);
// 填充更新人
this.strictUpdateFill(metaObject, UPDATE_BY, "system", String.class);
}
}
```
2. 配置公共字段填充器
```java
@Configuration
public class MybatisPlusConfig {
@Autowired
private MyMetaObjectHandler metaObjectHandler;
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加公共字段填充器
List<MetaObjectHandler> metaObjectHandlers = new ArrayList<>();
metaObjectHandlers.add(metaObjectHandler);
interceptor.setMetaObjectHandlers(metaObjectHandlers);
return interceptor;
}
}
```
在以上示例中,我们创建了一个名为MyMetaObjectHandler的公共字段填充器类,实现了MetaObjectHandler接口,并在insertFill和updateFill方法中分别填充了创建时间、更新时间、创建人和更新人等公共字段。然后在MybatisPlusConfig中将MyMetaObjectHandler配置到MybatisPlusInterceptor中,作为公共字段填充器。这样,在执行插入和更新操作时,就会自动填充公共字段,无需手动设置,大大提高了开发效率和数据准确性。
阅读全文