使用 mybatis plus 实现创建和修改数据时自动修改时间

引入相关依赖

<!--MybatisPlus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.1</version>
</dependency>
<!--MySQL-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>
<!--lombok-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

编写配置文件

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mp?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在入口类加入注解

@SpringBootApplication
@MapperScan("com.zhi.mapper")
public class MpDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(MpDemoApplication.class, args);
    }
}

创建MyMetaObjectHandler类

@Component      //把这个类的对象交给spring管理
public class MyMetaObjectHandler implements MetaObjectHandler {

    //mp执行添加操作时这个方法执行
    @Override
    public void insertFill(MetaObject metaObject) {
        //根据名称设置属性值
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    //mp执行更新操作时这个方法执行
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

在实体类要进行自动填充属性添加注解

@TableField(fill = FieldFill.INSERT)
private Date createTime;    //create_time
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;    //update_time
上一篇:AD域用户密码策略_AD域用户如何自助管理密码?


下一篇:关于MyBatis-plus中为什么要重写ServiceImpl接口中的问题