mybatis分页实现原理(pagehelper分页原理浅析)
Mybatis分页实现原理是通过对SQL语句进行拦截和改写,在查询语句中添加分页查询的相关限制条件。常见的分页实现方式包括使用limit语句或者在查询条件中添加ROWNUM等关键字。PageHelper是一个Mybatis分页插件,通过拦截器实现分页查询,并提供了简单易用的API,方便开发人员进行分页查询操作。
今日bug pagehelper 分页不生效
使用了分页mybatis的分页插件pagehelper,但是在分页的过程中遇到了一个大坑,也就是分页总页数总是1。下面是代码:
publicStringgetAllEmployee(Modelmodel,@RequestParam(value="pn",defaultValue="1")Integerpn){//下面开始分页的代码Listlt;Employeegt;allEmployee=employeeService.getAllEmployee();PageHelper.startPage(pn,5);PageInfopageInfo=newPageInfo(allEmployee,5);model.addAttribute("pageInfo",pageInfo);return"list";}
publicStringgetAllEmployee(Modelmodel,@RequestParam(value="pn",defaultValue="1")Integerpn){//下面开始分页的代码//注意下面的代码=====================================================PageHelper.startPage(pn,5);Listlt;Employeegt;allEmployee=employeeService.getAllEmployee();PageInfopageInfo=newPageInfo(allEmployee,5);model.addAttribute("pageInfo",pageInfo);return"list";}
PageHelper.startPage(pn,5);需要在查询数据的上面执行;PageHelper.startPage(pn,5);只对该语句以后的第一个查询语句得到的数据进行分页。
而我在PageHelper.startPage(1,10)该语句之前就已经执行了查询语句,所以不起作用。