逻辑删除在项目中也是很常见的,比较常见的方式是添加一个deleted
的标记位,当然也有其他的实现方式。本章节的插件针对的是添加标记位的方式来实现逻辑删除的。如果说没有和deleted
标记位一起的唯一联合索引,那是很容易实现的,标志位只要两个值:0、1,然后通过updateByExampleSelective
修改就可以了。但是往往我们表中会有唯一索引在,比如说名字不能重复之类的。这个时候我们采取的简单的处理方式是set deleted = deleted + 1
来避免无法删除已经删除过的数据的问题。索性这个插件就提供了两个方法:logicDelete
和logicDeleteWithUIndex
。
修改Mapper接口和SqlMap文件
|
|
逻辑比较简单,就是在Mapper接口和SqlMap文件中添加方法和对应的sql语句就可以了。
查看生成文件
将插件添加到项目中,并且运行完MybatisGenerator,我们来查看下生成的相关文件:
|
|
|
|
如何使用
使用方式如下:
这里同样用到了之前添加到Model类中的表字段枚举。
|
|
本章节就到这里了。以后要用插件来实现一些特殊的Sql,应该可以举一反三了。