最近写了一个项目,没有用mybatis-plus,用了mybatis,但是mybatis-plus中有许多mybatis中没有的功能,就比如mybatis-plus自动集成了逻辑删除功能,而mybatis需要自己去写,今天我就来描述一下在springboot集成mybatis的情况下,怎么实现逻辑删除吧。
- 首先我们用一张表使用mybatis-generator自动生成mapper、mapper.xml、model的一些类。(这里不管你用什么表,但是需要表中必须有一个逻辑删除字段,一般我们都需要用is_deleted设置为逻辑删除字段)
- 我们额外什么插件都不需要配置,我们只需要在删除的时候,进行修改操作就可以了,我们修改我们的is_deleted的值就可以了。
- 当我们再次查询的时候,就需要修改mybatis-generator给我们自动生成的sql语句了
(1)当我们在service中使用selectByPrimaryKey()方法时,我们就需要在mapper.xml中的加上and is_deleted = 0
(2)当我们在service中使用selectByExample()方法时,我们就不要再mapper.xml中修改sql语句中,我们最好在service中修改逻辑代码,因为对于分页筛选查询的方法,在mapper中已经封装好了,如果我们冒然修改,可能会导致500的错误。
好吧,是不是很简单,相比于mybatis-plus,我们集成mybatis实现逻辑删除更简单。