2023年11月26日发(作者:)
MybatisPlus--CRUD接⼝及主键增长策略、⾃动填充、乐观锁
更新数据
⽬录
⼀、insert
1、插⼊操作
@RunWith()
@SpringBootTest
public class CRUDTests {
@Autowired
private UserMapper userMapper;
@Test
public void testInsert(){
User user = new User();
e("Helen");
(18);
il("55317332@");
要想影响所有实体的配置,可以设置全局主键配置
#全局设置主键⽣成策略
-type=auto
其它主键策略:分析 IdType 源码可知
@Getter
public enum IdType {
/**
* 数据库ID⾃增
*/
AUTO(0),
/**
* 该类型为未设置主键类型
*/
NONE(1),
/**
* ⽤户输⼊ID
* 该类型可以通过⾃⼰注册⾃动填充插件进⾏填充
*/
INPUT(2),
2、⾃动填充
项⽬中经常会遇到⼀些数据,每次都使⽤相同的⽅式填充,例如记录的创建时间,更新时间等。
我们可以使⽤MyBatis Plus的⾃动填充功能,完成这些字段的赋值⼯作:
(1)数据库中添加version字段
ALTER TABLE `user` ADD COLUMN `version` INT
(2)实体类添加version字段
并添加 @Version 注解
@Version
@TableField(fill = )
private Integer version;
(3)元对象处理器接⼝添加version的insert默认值
@Override
public void insertFill(MetaObject metaObject) {
......
ldValByName("version", 1, metaObject);
@EnableTransactionManagement
@Configuration
@MapperScan("s_")
public class MybatisPlusConfig {
/**
* 乐观锁插件
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
}
(5)测试乐观锁可以修改成功
测试后分析打印的sql语句,将version的数值进⾏了加1操作
通过map封装查询条件
@Test
public void testSelectByMap(){
HashMap
("name", "Helen");
("age", 18);
List
@Test
public void testSelectMapsPage() {
Page
IPage
//注意:此⾏必须使⽤ mapIPage 获取记录列表,否则会有数据类型转换错误
ords().forEach(::println);
n(rent());
n(es());
n(e());
n(al());
n(t());
(1)数据库中添加 deleted字段
ALTER TABLE `user` ADD COLUMN `deleted` boolean
(2)实体类添加deleted 字段
并加上 @TableLogic 注解 和 @TableField(fill = ) 注解
@TableLogic
@TableField(fill = )
MyBatis Plus中查询操作也会⾃动添加逻辑删除字段的判断
/**
* 测试 逻辑删除后的查询:
* 不包括被逻辑删除的记录
*/


发布评论