PageHelper是Mybatis的一个很好的分页插件,但要使用它的分页功能需要注意:
当一个方法中有多个查询语句时,只有紧跟在PageHelper.starPage()方法后的查询结果才会分页,否则分页无效。如果你也是这个问题,那我就跟着我用一种超级笨的方法来解决分页问题,我在这里可是踩了很大的坑的。当然,如果你有更简单的方法,也可以和我分享,因为我求问度娘无果,才出此下策。
进入主题
这是我的业务层,因为进行了多个查询语句,所以分页失效了
/*驾驶人员数据*/
@Override
public List selectDriverEnityList(DriverEnity driverEnity) {
List driverEnityList1 = new ArrayList<>();
if(driverEnity.getShenfen() == 0){
/*普通员工申请*/
driverEnityList1 = driverMapper.selectDriverEnityList(driverEnity);
}else {
/*管理员申请*/
List driverEnityList = new ArrayList<>();
/*得到管辖的所有部门*/
List commonEnityList = roleMapper.selectDeptIdList(driverEnity.getDept_id());
for (int i = 0; i
然而我在度娘那里求寻未果时,自己就用最笨的方法,重写了分页
这是我的控制层
/*驾驶员数据*/
@CrossOrigin
@PostMapping("/selectDriverDate")
@ResponseBody
@Log(title = "驾驶员数据", businessType = BusinessType.SELECT)
public String selectDriverDate(@RequestBody DriverEnity driverEnity){
String result ="";
try {
if(driverEnity !=null ){
List parameterList =driverService.selectDriverEnityList(driverEnity);
List parameterList1 = new ArrayList<>();
/*每页记录数*/
int pageSize =driverEnity.getPageSize();
/*当前页*/
int currentPage=driverEnity.getCurrentPage();
//总数
int total = parameterList.size();
//总页数
int pageSum = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
parameterList1= parameterList.stream().skip((currentPage - 1) * pageSize).limit(pageSize).
collect(Collectors.toList());
TableDataInfo tableDataInfo =getDataTable1(parameterList1,total,pageSum);
result = JsonResultUtils.success("请求成功",tableDataInfo);
}else{
result =JsonResultUtils.error("请求失败");
}
}catch (Exception E){
E.printStackTrace();
result =JsonResultUtils.error("请求失败,请联系开发人员");
}
return result;
}
结束,当然如果你有更好的分页可以留言交流