mybatis 自动填充无效_不可错过的mybatis-plus干货,逻辑删除与默认值自动填充

本文介绍了mybatis-plus如何实现逻辑删除,通过简单配置避免物理删除带来的数据恢复难题。同时,讲解了mybatis-plus的默认值自动填充功能,包括插入和更新时的字段填充规则,帮助提升开发效率。
摘要由CSDN通过智能技术生成

人人都是程序员,希望在零碎的阅读时间里,给您一些技术提升。

1 创建项目

先创建一个集成了mybatis-plus的spring boot项目。参考小编的另一篇文章【】。

2 逻辑删除

讲到逻辑删除,就不得不先提物理删除。通过mysql的delete语句,从数据表中删除数据,属于物理删除。但很多时候,我们会面临这样的业务。客户使用系统的过程中把数据删除了,然后又找到程序员,要求把数据恢复。如果做得是物理删除,这时,可能大部分技术经理四处找资料。从mysql的log-bin中去找到一些数据蛛丝马迹,最终也没能完整地将数据恢复。小编面对这种情况时,会感到巨大的沮丧。接下来,小编介绍mybatis-plus如何通过一些简单的配置,实现逻辑删除,随时随地恢复数据,告别沮丧。

2.1 设定逻辑删除规则

在配置文件中配置逻辑删除和逻辑未删除的值,本文配置未删除的值为0,已删除的值为1;在pojo类中在逻辑删除的字段加注解@TableLogic,当这个字段值为0时,说明数据未被删除,提供给用户正常使用,当这个字段值为1是,说明数据已被删除,用户无法正常查到这条数据;配置及注解内容如下图。

2.2 测试删除效果

在测试模块,编写一个通过id删除数据的基础测试接口;并执行此接口,查看数据库变化,是否跟之前一样,直接将数据库中的数据删除,代码及删除结果如下图。

查询数据库后发现,对应user_id的数据并没有被删除,只是delete字段的值变成了1。再通过id去查询刚才被删除的数据,返回的是空,实现了真实删除的效果。

2.3 配置查询的数据不显示delete字段

如果我们查询其他未被删除的数据,返回了deleted字段。从业务层来说,我们并不需要这个字段,我们只需要通过一个简单的配置,我们只需要在delete字段上增加@TableField(select = false)mybatisplus在查询的时候就会自动忽略该字段。【人人都是程序提示:自定义sql,MybatisPlus不会忽略deleted属性,需要我们手动忽略】。

3 默认值的自动填充

MybaitsPlus在我们插入数据或者更新数据的时候,为我们提供了自动填充功能。类似MySQL提供的默认值一样。如果我们需要使用自动填充功能,我们需要在实体类的相应属性上加@TableField注解,并指定什么时候进行自动填充。

MybatisPlus为我们提供了三种填充机制。分别是插入是填充字段、更新时填充字段、插入和更新时填充字段。设置好之后,我们还需要编写具体的填充规则。

我们给用户表增加一个添加时间和一个更新时间自动填充。并编写填充规则,如下图。

在填充之前,进行判断,因为MybatisPlus在执行插入或者更新操作的时候,每次都会执行该方法,有些表中是没有设置自动填充字段的,而且有些自动填充字段的值的获取比较消耗系统性能,通过if判断,决定是否需要填充,降低消耗,提高性能。

4 结束语

人人都是程序员后续分享,关于mybatis-plus的更多功能和使用,小编感谢您的阅读,欢迎关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值