服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - mybatis-plus自动装配时间失效的解决

mybatis-plus自动装配时间失效的解决

2022-11-04 11:43break away from Java教程

本文主要介绍了mybatis-plus自动装配时间失效,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

刚开始的版本是3.2.0,在springboot聚合工程下,common公共API配置只有一个子模块可以使用,其它子模块无法自动生成时间。
MyMetaObjectHandler 在3.2.0版本下使用的方法 在3.3已过时

mybatis-plus自动装配时间失效的解决

以下为3.3版本的jar配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
    }
 
    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)
    }
}

并且实体类的属性由date改为localdatatime,这两者都可以与数据库中datetime字段属性匹配

?
1
2
3
4
5
@TableField(value = "create_time",fill = FieldFill.INSERT)
private LocalDateTime createTime;
 
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

自动装配到此成功。
别高兴!!!localdatetime在与前端交互时传输的数据为一个数组,其中年月日 时分秒,都被切割成一个一个字符串,用逗号间隔开了,如何传输给前端正常的时间字符串呢???

mybatis-plus自动装配时间失效的解决

只需要在上述实体类中的成员变量加上@JsonFormat 注解就解决啦

?
1
2
3
4
5
6
7
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "create_time",fill = FieldFill.INSERT)
private LocalDateTime createTime;
 
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

此时传输给前端的数据:

mybatis-plus自动装配时间失效的解决

如此便大功告成!

坑:如果大家伙的有遇到spring容器@Compent无法使用的情况

在启动类上直接装配就好

?
1
2
3
4
5
6
7
8
@MapperScan("mapper文件所在的包名")//mybatisplus的配置
@ComponentScan({"MyMetaObjectHandler 所在的包名","三层架构的总包名"})//如:com.bilibili 下有service controller dao
@SpringBootApplication
public class SpringRun {
    public static void main(String[] args) {
        SpringApplication.run(SpringRun .class, args);
    }
}

到此这篇关于mybatis-plus自动装配时间失效的解决的文章就介绍到这了,更多相关mybatis-plus自动装配时间失效内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_46356379/article/details/109254896

延伸 · 阅读

精彩推荐