Mybatis plus逻辑删除注解@TableLogic的使用
首先这个注解是苞米豆出品,也就是我们常说的mybatis升级版的东西。
简单讲一下这个注解的用法:我们在做数据库设计的时候有时候哪怕是删除也不会真的走物理删除,毕竟这样很多数据就不可恢复了,大多数时候很多删除都是用逻辑删除。
物理删除和逻辑删除
简单来说物理删除就是真的把这条数据从数据库删除了。
而逻辑删除主要是把表中的某一个字段作为标识符,一般我们常用的会默认初始为0,当我们想要删除这条数据的时候会把这个标识符改成1。这样在我们的常识里这条记录就被删除了。并且任何的查询都会添加这个条件,也就是要在代码中保证查询出来的数据是有效的。
@TableLogic注解
@TableLogic注解默认值:
刚刚已经说了这个注解是用于逻辑删除的,代表一个标识符,既然是标识符肯定要有值了,比如我上面说的0表示存在,1表示删除。但是不能排除有的设计就是不按照常理,比如1表示存在,2表示删除。所以@TableLogic注解是可以设置默认值的。用法如下:
@TableLogic(value=“存在标识”,delval=“删除标识”) private Integer del_flag;
如果不写value和delval会默认存在标识是0.删除标识是1.
@TableLogic注解用法
这个注解的用处就比较简单了,当我们在实体类中某一个字段添加了这个注解,就相当于告诉mp这个字段是个标识符。我们调用BaseMapper或者调用IService的所有增删改查方法会受影响。
- 查询的时候用条件构造器,不用再对这个字段进行判断,会自动筛选出存在的值。这里需要注意拿我上面的demo举例:哪怕我们传条件del_flag = 1,也不会生效。简单总结下:用mp条件构造器查询出来的结果一定是逻辑存在的
- 修改的时候差不多,如果我们把实体对象的del_flag 赋值为1然后保存,也是保存不成功的。
- 删除的时候我们如果不用这个注解,用mp的delete方法或者remove方法都是物理删除。但是如果用了这个注解,那么所有的delete方法或者remove方法都是逻辑删除,也就是将del_flag 改为1.
需要注意的是上面说的都只对mp的查询有影响,我们用xml或者注释的方式自己写sql是不生效的!
本篇笔记就记到这里,如果稍微帮到你了记得点个喜欢点个关注,也祝大家工作顺顺利利!其实这个知识点是新公司学到的东西,以前不知道所有的逻辑删除都要自己写,虽然能实现但是也麻烦的很,有时候我会觉得所谓的技术不见得是写出别人写不出来的东西,而是知道,使用,制作更好的轮子。愿我们都在前进的路上!
栏 目:JAVA代码
下一篇:mybatis参数String与Integer类型的判断方式
本文标题:Mybatis plus逻辑删除注解@TableLogic的使用
本文地址:http://www.codeinn.net/misctech/224494.html