數據庫中添加一個字段 delete_status 表示是否刪除 給個默認值爲0
相關實體類加上這個屬性
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
@TableId(type=IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@TableLogic//邏輯刪除註解
private Integer deleteStatus;
}
3.1.1版本之前需要配置
package com.example.demo.handler;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author
* @date 2020/06/17
* @description: description
* @version: 1.0.0
*/
@Configuration
public class MyConfig {
@Bean
public ISqlInjector SqlInjector(){
return new LogicSqlInjector();
}
}
application.properties
#邏輯刪除配置
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
測試
@Test
void contextLoads() {
User user=new User();
userMapper.deleteById(1L);
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
//Creating a new SqlSession
//SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@70fede7d] was not registered for synchronization because synchronization is not
// active
//JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@4b28a7bf] will not be managed by Spring
//==> Preparing: UPDATE user SET delete_status=1 WHERE id=? AND delete_status=0
//==> Parameters: 1(Long)
//<== Updates: 1
//Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@70fede7d]
//Creating a new SqlSession
//SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@34d9df9f] was not registered for synchronization because synchronization is not
// active
//JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@4b28a7bf] will not be managed by Spring
//==> Preparing: SELECT id,name,age,email,create_time,update_time,delete_status FROM user WHERE delete_status=0
//==> Parameters:
//<== Columns: id, name, age, email, create_time, update_time, delete_status
//<== Row: 2, Jack, 20, [email protected], null, null, 0
//<== Row: 3, Tom, 28, [email protected], null, null, 0
//<== Row: 4, Sandy, 21, [email protected], null, null, 0
//<== Row: 5, Billie, 24, [email protected], null, null, 0
//<== Row: 6, Jack, 3, [email protected], 2020-06-16 22:05:12, 2020-06-16 22:05:12, 0
//<== Row: 7, Jack, 3, [email protected], 2020-06-16 22:05:12, 2020-06-16 22:05:12, 0
//<== Row: 1272823863285137410, 張三, 10, 看修改時間, 2020-06-16 20:06:40, 2020-06-16 20:06:40, 0
//<== Row: 1272823863285137411, 李四, 10, 紅紅火火恍恍惚惚, null, null, 0
//<== Row: 1272823863285137412, 修改時間成功否, 3, [email protected], 2020-06-16 20:58:57, 2020-06-16 21:04:31, 0
//<== Row: 1272823863285137413, 測試插入, 18, [email protected], 2020-06-16 22:05:12, 2020-06-16 22:05:12, 0
//<== Row: 1272823863285137414, 李三, null, [email protected], 2020-06-16 22:05:12, 2020-06-16 23:20:10, 0
//<== Total: 11
//Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@34d9df9f]
//User(id=2, name=Jack, age=20, [email protected], createTime=null, updateTime=null, deleteStatus=0)
//User(id=3, name=Tom, age=28, [email protected], createTime=null, updateTime=null, deleteStatus=0)
//User(id=4, name=Sandy, age=21, [email protected], createTime=null, updateTime=null, deleteStatus=0)
//User(id=5, name=Billie, age=24, [email protected], createTime=null, updateTime=null, deleteStatus=0)
//User(id=6, name=Jack, age=3, [email protected], createTime=Tue Jun 16 22:05:12 CST 2020, updateTime=Tue Jun 16 22:05:12 CST 2020, deleteStatus=0)
//User(id=7, name=Jack, age=3, [email protected], createTime=Tue Jun 16 22:05:12 CST 2020, updateTime=Tue Jun 16 22:05:12 CST 2020,
// deleteStatus=0)
//User(id=1272823863285137410, name=張三, age=10, email=看修改時間, createTime=Tue Jun 16 20:06:40 CST 2020, updateTime=Tue Jun 16 20:06:40 CST 2020,
// deleteStatus=0)
//User(id=1272823863285137411, name=李四, age=10, email=紅紅火火恍恍惚惚, createTime=null, updateTime=null, deleteStatus=0)
//User(id=1272823863285137412, name=修改時間成功否, age=3, [email protected], createTime=Tue Jun 16 20:58:57 CST 2020, updateTime=Tue Jun 16 21:04:31
// CST 2020, deleteStatus=0)
//User(id=1272823863285137413, name=測試插入, age=18, [email protected], createTime=Tue Jun 16 22:05:12 CST 2020, updateTime=Tue Jun 16 22:05:12 CST 2020,
// deleteStatus=0)
//User(id=1272823863285137414, name=李三, age=null, [email protected], createTime=Tue Jun 16 22:05:12 CST 2020, updateTime=Tue Jun 16 23:20:10
// CST 2020, deleteStatus=0)
}
其實它執行的是更新操作