乐观锁
1.给表增加字段并附默认值为1
2.配实体类中添加version属性并陪值version注解
3.添加乐观锁组件
@Configuration
@EnableTransactionManagement
public class mybatisConfig {
// 注册乐观锁插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); // 乐观锁插件
return interceptor;
}
}
4.测试
查询(单表)
分页查询
i.写入分页插件
@Bean
public MybatisPlusInterceptor PlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
测试
@Test
void selectPage() {
// List<User> users = userMapper.selectBatchIds(Arrays.asList(2, 3, 4, 5));
// System.out.println(users);
Page<User> page = new Page<>(2,3);
Page<User> userPage = userMapper.selectPage(page, null);
System.out.println(userPage);
}
删除
i.批量删除
ii.条件删除
@Test
void delete(){
// 批量删除
// int i = userMapper.deleteBatchIds(Arrays.asList(1422453109266882566l,1422453109266882564l));
// System.out.println(i);
// 条件删除
Map<String,Object> map = new HashMap<>();
map.put("name","liuhao");
map.put("age","777");
int i = userMapper.deleteByMap(map);
System.out.println(i);
}
逻辑删除
配置文件(.yml格式)
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
(.properties格式)
实体类上加注解
@TableLogic
private Integer deleted;
使用wrapper给自定义sql构造条件(多表)
自己定义的
测试(查询name为liu的并且,id范围是1,2)
自动填充功能
使用注解声明
实现MetaObjectHandler类
结果