一、分页原理:
你需要进行分页的Mybatis方法前调用PageHelper.startPage静态方法即可,紧跟在这个方法后的第一个Mybatis查询方法会被进行分页。
用PageInfo对结果进行包装,并获取分页信息,参见pageInfo的源码:
service层代码:自定义取出多少条数据,从第几条取((pageNo-1)*pageSize)
int total = (int)employeeMapper.countByExample(null);
int totalPage = total%5==0?total/5:(total/5+1);
List<Employee> list = employeeMapper.selectByLimit((pageNo-1)*5,5);
Page page = new Page();
page.setTotal(total);
page.setPageNo(pageNo);
page.setList(list);
page.setTotalPage(totalPage);
return page;
dao层代码:参数i为从第几条数据开始,参数j取多少条数据
<select id="selectByLimit" resultMap="WithDeptResultMap">
select
<include refid="WithDept_Column_List" />
from tbl_emp e
left join tbl_dept d
on e.d_id=d.dept_id
limit #{i},#{j}
</select>
二、分页插件使用:
1.导入依赖:
springboot项目中:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
maven中:
<!--引入pageHelper分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
2、使用插件:
PageHelper.startPage(pageNo,5);
List<Employee> list = empService.findEmpList();
PageInfo<Employee> page = new PageInfo<>(list, 5);
return Msg.success().add("page", page);