在对象声明后面的第一条的查询的sql语句进行拦截,
拦截后实现对应方言的查询的分页语句。如果还要返回记录总数。(这里可以理解执行了两条sql语句。)
还要执行一条的sql语句。总数sql结果封装pageInfo.total(这里总数 pageInfo是辅助类)。
记录封装pageInfo.rows。在把pageInfo对象封装到PageHelper对象中。(内部将执行sql 封装到一个对象,在进行封装到另一个对象)
我们何时进行声明呢。
startPage(静态方法 不用new这个对象即可直接调用这个方法)一旦声明,拦截的监听生效,后面第一个查询SQL。
* 开始分页
*
* @param pageNum 页码
* @param pageSize 每页显示数量
*/
public static void startPage(int pageNum, int pageSize) {
startPage(pageNum, pageSize, true);
}
PageHelper.startPage(page, rows); //开启拦截器侦听
//被PageHelper拦截,已经分页数据
List<Item> itemList = itemMapper.queryList();
PageInfo<Item> pageInfo = new PageInfo(itemList);
return new EasyUIResult(pageInfo.getTotal(), pageInfo.getList());
}
两部分结合 产生分页的效果。
ajax提交,提交参数是两个。1.当前页 page + 2. 每页记录数 rows
我们只需扩展这两个属性即可。
通用mapper能自动帮我解决分页吗?不能,因为多了排序,要按照修改的时间倒序
总数和一页数据
我们需要PageHelper分页拦截器对象来实现分页。
拦截后实现对应方言的查询的分页语句。如果还要返回记录总数。(这里可以理解执行了两条sql语句。)
还要执行一条的sql语句。总数sql结果封装pageInfo.total(这里总数 pageInfo是辅助类)。
记录封装pageInfo.rows。在把pageInfo对象封装到PageHelper对象中。(内部将执行sql 封装到一个对象,在进行封装到另一个对象)
我们何时进行声明呢。
startPage(静态方法 不用new这个对象即可直接调用这个方法)一旦声明,拦截的监听生效,后面第一个查询SQL。
只对后面的第一SQL进行分页,后面再有查询就不生效。只对这条sql语句声明开启的起作用,其他的不会。
源代码:
/*** 开始分页
*
* @param pageNum 页码
* @param pageSize 每页显示数量
*/
public static void startPage(int pageNum, int pageSize) {
startPage(pageNum, pageSize, true);
}
项目中代码:
public EasyUIResult queryList(Integer page, Integer rows){PageHelper.startPage(page, rows); //开启拦截器侦听
//被PageHelper拦截,已经分页数据
List<Item> itemList = itemMapper.queryList();
PageInfo<Item> pageInfo = new PageInfo(itemList);
return new EasyUIResult(pageInfo.getTotal(), pageInfo.getList());
}
两部分结合 产生分页的效果。
ajax提交,提交参数是两个。1.当前页 page + 2. 每页记录数 rows
我们只需扩展这两个属性即可。
通用mapper能自动帮我解决分页吗?不能,因为多了排序,要按照修改的时间倒序
总数和一页数据
我们需要PageHelper分页拦截器对象来实现分页。