一·分页查询:
1.配置分页拦截器(在config的配置类里面写)
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
2.查询前设置分页参数(在Controller类里面写)
/**
* 分页查询mybatis-plus方式
* @param pageNum 页数
* @param pageSize 每页几个
* @param username 查询
* page.getCurrent();//当前是第几页
* page.getTotal();//总共有多少条
* @return
*/
@GetMapping("/page")
public IPage<User> findpage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam String username) {
IPage<User> page = new Page<>(pageNum, pageSize);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("username", username);
return userService.page(page, queryWrapper);
}
二·条件构造器
1.常规使用
/**
* 条件构造器示例
* Wrapper 封装器
*/
public void testSelect(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.gt("permission",0);//gt: 大于 查询权限>0的
wrapper.likeRight("username","L");//like: 等于 查询以L开头的(右模糊)
wrapper.orderByDesc("id");//按照id降序排列
userMapper.selectList(wrapper);
}
2.推荐使用
/**
* 条件构造器示例
* Wrapper 封装器
*/
public void testSelect(){
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.gt(User::getPermission,0);//gt: 大于 查询权限>0的
wrapper.likeRight(User::getUsername,"L");//like: 等于 查询以L开头的(右模糊)
wrapper.orderByDesc(User::getUid);//按照id降序排列
userMapper.selectList(wrapper);
}