mybatis查询优化之骚操作
前提你们controller的返回值是com.github.pagehelper.PageInfo里面再包含实体
重点就是,先根据条件查询出想要的数据,但是sql的返回值只有id。这个时候mybatis就会各种分页的信息封装到Page代理对象里面。然后再根据id反查出所需要的各种列(如果列比较多,直接查询会很慢)再把封装的代理对象Page,里面的值替换成最后根据id查询的值。但是引用不能替换
PageHelper.startPage(pageNum, pageSize);
//这个可以传入条件,重点就是之返回id
List<User> datas = userDao.query();
List<Long> ids = datas.stream().map(User::getId).collect(Collectors.toList());
datas.clear();
if(CollectionUtil.isNotEmpty(ids)){
List<User> dataList = userDao.queryById(ids);
datas.addAll(dataList);
}