1.分页查询
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
//分页插件
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(
DbType.MYSQL));
return mybatisPlusInterceptor;
}
}
@Test
void contextLoads() {
//创建一个 Page 对象(当前页默认1,一页大小默认10)
Page<User> page = new Page<>();
//Page<User> page = new Page<>(1,2);
userMapper.selectPage(page,null);
//获取当前页数据
List<User> list= page.getRecords();
list.forEach(System.out::println);
System.out.println(page.getTotal()); // 获取总记录数
System.out.println(page.getSize()); // 获取每页的条数
System.out.println(page.getPages()); // 获取总页数
System.out.println(page.hasNext()); // 是否存在下一页
System.out.println(page.hasPrevious()); // 是否存在上一页
}
2.QueryWrapper条件构造器使用
@Test
void contextLoads() {
//创建一个 Page 对象(当前页默认1,一页大小默认10)
Page<User> page = new Page<>();
//查询条件构造器
QueryWrapper<User> queryWrapper =new QueryWrapper<User>();
//模糊查询
// queryWrapper.like("name", "小");
// queryWrapper.eq("age", 18);
//链式调用
queryWrapper.like("name", "小").eq("age", 30);
userMapper.selectPage(page,queryWrapper);
}
3.LambdaQueryWrapper条件构造器使用
@Test
void contextLoads() {
//创建一个 Page 对象(当前页默认1,一页大小默认10)
Page<User> page = new Page<>();
//lambda方式 条件构造器
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.like(User::getName, "小").eq(User::getAge, 30);
userMapper.selectPage(page,wrapper);
}
4.总结
- QueryWrapper 的列名匹配使用的是 “数据库中的字段名(一般是下划线规则)”,列名要和数据库中一致。
- LambdaQueryWrapper 的列名匹配使用的是“Lambda的语法,偏向于对象”,是使用纯java的方式,避免了拼写错误。