mybatis-plus 使用依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.4</version>
</dependency>
注解
@MapperScan
- 作用 : Spring Boot 启动类
- 描述 : 扫描 mapper 接口,继承的 BaseMapper 接口,MyBatis-Plus 内置的 sql 接口
【就是将扫描的文件注入为 bean,交给 Spring Boot 管理对象】
@SpringBootApplication
@MapperScan("com.baomidou.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@TableName("t_m_user")
- 作用 : 实体类
- 描述 : 将实体类与对应的数据库表名相映射
@TableLogic(value = "0", delval = "1")
- 作用 : 实体类字段
- 描述 : 如果想使用逻辑删除,必须在字段上设置 注解
- delval : 逻辑删除值
- value : 逻辑未删除值
sql ==> Preparing: UPDATE t_m_user SET is_deleted=1 WHERE id=? AND is_deleted=0
@TableField(value="columnName", fill = FieldFill.INSERT_UPDATE)
- 作用 : 实体类字段
- 描述 :
- value:对应数据库字段名,如果不设置,则默认字段与数据库字段对应。
- fill:当插入时或修改时,可以自动填充的字段,比如:修改时间,创建时间等字段
- 设置完成后,然后再实现字段填充控制器。一定要加
@Component
@Component
public class AutoFill implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "gmtCreate", () -> LocalDateTime.now(), LocalDateTime.class);
updateFill(metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "gmtModified", () -> LocalDateTime.now(), LocalDateTime.class);
}
}