刪除操作:
基本的刪除操作;
@Test//根據id刪除單個 void testDeletebyId(){ userMapper.deleteById("1327089990215172099"); } @Test//根據多個id刪除多個數據 void testDeletebyArry(){ userMapper.deleteBatchIds(Arrays.asList(1327089990215172098L,1327089990215172097L)); } @Test//根據map條件刪除 void testDeletebyMap(){ HashMap<String,Object> map=new HashMap<>(); map.put("id",1327089590540029953L); userMapper.deleteByMap(map); }
我們在工組中會遇到一些問題:邏輯刪除!
邏輯刪除
我們先來看一下物理刪除和邏輯刪除的概念:
物理刪除:從數據庫中直接移除
邏輯刪除:再數據庫中沒有被移除,而是通過一個變量來讓他失效!deleted =0=> deleted =1
實例:管理員可以查看被刪除的記錄!防止數據的丟失,類似於回收站!
測試步驟:
1在數據表中增加一個deleted字段:
2,在pojo實體類中添加相應的字段:
@TableLogic//邏輯刪除注解
private Integer deleted;
3.配置類中添加組件
@Bean//邏輯刪除組件 public ISqlInjector sqlInjector(){ return new LogicSqlInjector(); }
#配置邏輯刪除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
測試刪除之后:
當我們執行查詢操作的時候:
我們的查詢條件都會有deleted=0的判斷,所以被我們邏輯刪除的記錄是不同查詢到的
可以看出其實id為1的記錄並沒有真正的刪除,只是deleted字段修改成了1;