mybatisplus 自动生成代码 自动填充字段
时间: 2025-01-03 07:39:33 浏览: 18
### 配置 MyBatisPlus 自动填充字段
为了使 `MyBatisPlus` 自动生成代码并支持自动填充字段,在实体类中需定义这些字段,并通过特定注解来指定其行为。通常涉及两个主要组件:一是使用 `@TableField` 注解标记需要自动处理的字段;二是创建处理器类继承 `MetaObjectHandler` 接口,重写相应方法完成具体逻辑。
#### 定义实体类中的字段
对于希望在插入或更新记录时被自动赋值的字段,可以在对应的 Java 实体类属性上添加 `fill` 属性:
```java
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date createTime;
```
此段代码表示当执行插入和更新操作时都会对该时间戳类型的 `createTime` 字段进行自动填充[^1]。
#### 创建 MetaObjectHandler 处理器
接着要编写一个实现了 `com.baomidou.mybatisplus.core.handlers.MetaObjectHandler` 接口的类,用于提供实际的数据填充逻辑。下面是一个简单的例子展示如何实现这一点:
```java
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
// 可以为其他字段也设定默认值...
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
// 更新时也可以设置某些特殊字段的新值...
}
}
```
上述代码片段展示了怎样利用 `insertFill()` 方法为新纪录初始化时间和 `updateFill()` 来维护最后修改的时间戳[^3]。
#### 导入必要的依赖项
为了让这一切工作起来,还需要确保项目的构建文件(如 Maven 的 POM 文件)里包含了 Velocity 引擎的核心库作为模板引擎的一部分,这有助于生成所需的 CRUD 操作接口和服务层代码:
```xml
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
```
这段 XML 片段应放置于 `<dependencies>` 节点下以引入所需工具包的支持[^4]。
阅读全文