mybatis 开启修改记录
时间: 2023-08-12 21:09:02 浏览: 50
MyBatis并没有提供官方的修改记录功能,但是可以通过以下方式实现:
1. 使用拦截器拦截update操作,记录修改前和修改后的数据,然后将记录保存到数据库中。
2. 使用数据库的触发器实现,例如在更新操作时,在数据库中插入一条记录,记录修改前的数据和修改后的数据。
3. 在业务逻辑层进行记录,例如在更新操作时,在代码中记录修改前和修改后的数据,然后将记录保存到数据库中。
需要注意的是,记录修改记录需要考虑到数据量和性能问题,不宜在每次更新操作时都记录一次,需要在实际业务场景中根据需求进行权衡。
相关问题
mybatis-plus审计
Mybatis-Plus提供了审计功能,可以自动记录表的创建时间、修改时间、创建人、修改人等信息。使用方法如下:
1.在实体类中添加审计字段
```java
public class User {
// ...
@TableField(fill = FieldFill.INSERT)
private Date createTime; // 创建时间
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime; // 修改时间
@TableField(fill = FieldFill.INSERT)
private String createBy; // 创建人
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy; // 修改人
// ...
}
```
2.在Mybatis-Plus的配置文件中开启审计功能
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加审计功能插件
interceptor.addInnerInterceptor(new AuditInnerInterceptor());
return interceptor;
}
}
```
3.测试审计功能
```java
@Test
public void testAudit() {
User user = new User();
user.setName("test");
user.setAge(18);
userMapper.insert(user);
System.out.println(user);
}
```
以上代码会自动将创建时间、修改时间、创建人、修改人等信息插入到数据库中。
mybatis-plus删除
数据时,如何使用逻辑删除?
在 MyBatis-Plus 中,可以通过在实体类中添加一个标记字段来实现逻辑删除。具体步骤如下:
1. 在实体类中添加一个标记字段,例如:@TableLogic private Integer deleted;
2. 在 MyBatis-Plus 的配置文件中开启逻辑删除功能,例如:global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
3. 在 Mapper 中使用 @LogicDelete 注解标记需要逻辑删除的方法,例如:@LogicDelete(select = false)
这样,在执行删除操作时,MyBatis-Plus 会自动将标记字段的值修改为逻辑删除值,而不是真正的删除数据。