一,基本查询
//测试查询By Id
@Test
public void testselectById(){
TUser tUser = tUserMapper.selectById(1L);
System.out.println(tUser);
}
// 测试批量查询!By ids
@Test
public void testselectByBatchid(){
List<TUser> users = tUserMapper.selectBatchIds (Arrays. asList(1, 2, 3));
users. forEach (System.out::println);
}
//按条件查询之一使用map操作
@Test
public void testselectByBatchIds() {
HashMap<String, Object> map = new HashMap<String, Object>();
//自定义要查询
map.put("username", "zl222");
List<TUser> tUsers = tUserMapper.selectByMap (map);
tUsers.forEach (System.out::println);
}
构造器查询
构造器图文介绍
- Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
- AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
- AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
- LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
- LambdaUpdateWrapper : Lambda 更新封装Wrapper
- QueryWrapper : Entity 对象封装操作类,不是用lambda语法
- UpdateWrapper : Update 条件封装,用于Entity对象更新操作
使用方法
小小一例:
QueryWrapper<TmStockroom> wrapper = new QueryWrapper<>();
wrapper.eq("code",req.getCode())
.or()
.eq("name",req.getName());
List<TmStockroom> tmStockrooms = stockroomCommandMapper.selectList(wrapper);
//tmStockrooms.forEach(System.out::println);
if(tmStockrooms.size()!=0){
throw new BusinessException("仓库code或者仓库名称已存在");
}
控制台sql:
二,分页查询
1,引入MyBatisPlus插件
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
2,分页查询
@Test
public void testPage(){
//第一个参数:当前页数
//第二个参数:显示数据条数
Page<TUser> tUserPage = new Page<>(1,5);
IPage<TUser> tUserIPage = tUserMapper.selectPage(tUserPage, null);
tUserIPage.getRecords().forEach(System.out::println);
}