完整代码在最后
物理删除:真实删除。将对应数据从数据库中删除,之后查询不到此条被删除数据;
逻辑删除:假删除。将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录。
1.在Config中添加插件
2.在逻辑删除属性上添加注解
//逻辑删除
3.测试
mp自动填充
有些表中会有更新时间、创建时间、更新人或者创建人这些字段。
每次对数据进行新增、删除、修改时都需要对这些字段进行设置。传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作。这种做法不仅容易忘记导致出错、而且代码会显得特别冗余。
虽然新增时间和修改时间可以使用数据库的时间,但是新增人和修改人就不能使用这样的功能。
所以MP就提供自动填充的功能,帮助自定设置这些字段的值,提升开发效率,代码也会显得特别优雅。
1.在自动填充属性上添加注解
//自动填充
2.创建MyMetaObjectHandler
package com.systop.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
3.添加数据测试
mp乐观锁
乐观锁,解决丢失更新的问题,大多是基于数据版本( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号等于数据库表当前版本号,则予以更新,否则认为是过期数据。
1.属性上添加注解
//乐观锁
2.config中配置乐观锁插件
3.在MymetaObjectHandler中添加以下代码实现自动添加
4.测试
//测试乐观锁
完整代码
1.数据库
| id | name | age | create_time | update_time | version | deleted | |
|---|---|---|---|---|---|---|---|
| 1 | mary | 20 | mary@qq.com | 2021-05-06 08:13:31 | 2021-05-06 08:13:31 | 1 | 1 |
| 2 | jack | 20 | jack@qq.com | 2021-05-06 08:33:55 | 2021-05-06 08:33:55 | 1 | 0 |
| 3 | rose | 20 | rose@qq.com | 2021-05-06 08:37:09 | 2021-05-06 08:37:09 | 1 | 0 |
2.代码
1.pom.xml