邏輯刪除實現流程
1、數據庫修改
添加 deleted字段
ALTERTABLE `user` ADD COLUMN `deleted` boolean DEFAULT false
2、實體類修改
添加deleted 字段,並加上 @TableLogic 注解
@TableLogic
private Integer deleted;
3、配置(可選)
application.properties 加入以下配置,此為默認值,如果你的默認值和mp默認的一樣,該配置可無
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
4、測試
測試后發現,數據並沒有被刪除,deleted字段的值由0變成了1
測試后分析打印的sql語句,是一條update
注意:被刪除前,數據的deleted 字段的值必須是 0,才能被選取出來執行邏輯刪除的操作
@Test
public void testLogicDelete() {
int result = userMapper.deleteById(1L);
system.out.println(result);
}
5、測試邏輯刪除后的查詢
MyBatis Plus中查詢操作也會自動添加邏輯刪除字段的判斷
@Test
public void testLogicDeleteSelect() {
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}