查询
最简单例子
User user = userMapper.selectById(1L);
查询多个
List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
users.forEach(System.out::println);
条件查询
@Test//条件查询 使用Map
void test2(){
HashMap<String,Object> map=new HashMap<>();
//自定义查询
map.put("name","Tom");
map.put("age",28);
List<User> users = userMapper.selectByMap(map);
users.forEach(System.out::println);
}
分页查询
注册组件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
测试功能
@Test
void test3(){
//测试分页查询
Page<User> page = new Page<>(2,5);//5条记录为单位的第二页
userMapper.selectPage(page,null);
page.getRecords().forEach(System.out::println);
}
结果只有一条ID为6的记录 符合情况
删除功能
几乎和查询一致
最简单方法
userMapper.deleteById(1L);
删除一系列
userMapper.deleteBatchIds(Arrays.asList(1,2,3));
条件删除
和查询一样
逻辑删除
逻辑删除指删除某一条数据时并没有真的删除它,而是通过一个变量值的状态让它失效
测试逻辑删除:
添加一个deleted字段 为1时表明被逻辑删除
实体类添加属性
@TableLogic//逻辑删除字段注解
private Integer deleted;
配置application.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)
测试删除
void test1(){
userMapper.deleteById(1L);
}
id1数据并没有删除 而是被标记为deleted=1