最近做项目的时候,有一个同事说遇到一个很奇葩的问题:“执行多个Mapper 只有一条被pagehelper拦截插入了分页语句”。
具体的代码没有 我这里模拟一下示例:
PageHelper.startPage(pageNum, pageSize);
Page<HashMap<String, Object>> list = baseInfoMapper.getList(params, param);
Page<HashMap<String, Object>> list1 = baseInfoMapper.getList(params, param);
不妨猜测一下 List和List1查询出来的数量是否一致?(这里查询结果不分页肯定是大于咱们分页条件里面的Limit的值的)
结果显而易见 当然不一致 我们来看结果
这是因为pagehelper这个组件 只会拦截start后的第一条SQL;
知道了原因 那就得解决它 通过上面的叙述 相信大家都知道用一个方法 那就是在写一个PageHelper.startPage(pageNum, pageSize);
这样很明显 是可以成功的 所以要注意 pagehelper的分页只会拦截startPage下的第一条select语句!
PageHelper.startPage(pageNum, pageSize);
Page<HashMap<String, Object>> list = baseInfoMapper.getList(params, param);
PageHelper.startPage(pageNum, pageSize);
Page<HashMap<String, Object>> list1 = baseInfoMapper.getList(params, param);
咱们看看结果