1)引入jar包 jsqlparser-2.0.jar和pagehelper-5.1.10.jar(两jar包需匹配使用)
2)在配置文件中添加,拦截器插件(复制官网),注意顺序
可以在mybatis-config.xml的configuration之后添加
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样 -->
<property name="offsetAsPageNum" value="true" />
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true" />
</plugin>
</plugins>
测试:
@Test
void testselectall() {
//1.使用PageHelper类设置起始页和每页显示的条数
int pageNum=5;//当前页码 从网页中可以获取
int pageSize=3;//pageSize:自定义
PageHelper.startPage(pageNum,pageSize);
//2调用查询所有的方法
List<User> list=userMapper.selectall();
for (User user : list) {
System.out.println(user);
}
//3.把查询的结果封装到Pageinfo中
PageInfo<User> pageinfo=new PageInfo<>(list,4);
System.out.println("上一页:"+pageinfo.getPrePage());
System.out.println("当前页:"+pageinfo.getPageNum());
System.out.println("下一页:"+pageinfo.getNextPage());
System.out.println("总页数:"+pageinfo.getPages());
int[] navigatepageNums = pageinfo.getNavigatepageNums();
for (int i : navigatepageNums) {
System.out.print(i+"\t");
}
}
直接输出pageinfo查询到的结果
PageInfo{
pageNum=1, //当前页
pageSize=2,//每页显示的条数
size=2,//该页条数
startRow=1,//从第几条开始
endRow=2, //到第几条结束
total=5, //总共有多少条
pages=3,//总共的页数
list=Page{count=true, pageNum=1, pageSize=2, startRow=0, endRow=2, total=5, pages=3, reasonable=false, pageSizeZero=false}
[com.zhiyou.clg.bean.User@52bf72b5, com.zhiyou.clg.bean.User@37afeb11], //当前页的数据
prePage=0, //上一页
nextPage=2, //下一页
isFirstPage=true,//是否为第一页
isLastPage=false, hasPreviousPage=false, hasNextPage=true,
navigatePages=8,//每页显示的页码个数
navigateFirstPage=1,
navigateLastPage=3,
navigatepageNums=[1, 2, 3]//页码的个数
}
下面就是我在项目中的使用,仅供参考
首先在config类中添加
/**
* 分页
* @return
*/
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
// 添加配置,也可以指定文件路径
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("dialect", "mysql");
pageHelper.setProperties(p);
return pageHelper;
}
这样就可以在实现层中使用
PageHelper.startPage(start,limit);
List<UsBaseInfoVo> getFocusList = baseInfoMapperVo.getFocusList(account_id);
return new IPageInfo((Page)getFocusList);
返回的页码格式
total 返回总条数
pageSize 每页的数量
pages 当前页码数
pageNum 当前页
参考文章于:https://www.cnblogs.com/lwgok1003/p/11442729.html