如何使用MyBatis分页插件
① 添加依赖
pagehelper-x.y.z.jar 和 jsqlparser-x.y.z.jar两个依赖包。
注意 依赖的版本是有要求的。
~
~
~
②配置PageHelper
编辑全局配置文件
注意 前提是项目中必须有依赖包。
~
~
~
在全局配置文件中添加代码:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- config params as the following -->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
~
~
~
~
常用相关属性:
helperDialect
该属性指定要分页的数据库,值写数据库名称。
~
~
~
③在项目代码中分页
PageHelper.startPage(pageNumber,pageSize);//会对他后面第一条查询语句进行分页
List users = mapper.selectUsers();//查询所有用户(会分页)
List users1 = mapper.selectUsers();//查询所有用户(不会分页)因为只会对第一行后第一行查询语句分页
PageInfo pageinfo = new PageInfo(users);//根据分页后的List可以构造分页对象
pageinfo中常用的方法:
assertEquals(1, page.getPageNum());//当前页
assertEquals(10, page.getPageSize());//每页的数量
assertEquals(1, page.getStartRow());//(pageNuber-1)*size 起始条数
assertEquals(10, page.getEndRow());//总条数
assertEquals(183, page.getTotal());//总页数
assertEquals(19, page.getPages());//
assertEquals(1, page.getFirstPage());//获取首页页码
assertEquals(8, page.getLastPage());//获取尾页页码
assertEquals(true, page.isFirstPage());//判断当前页是否首页
assertEquals(false, page.isLastPage());
assertEquals(false, page.isHasPreviousPage());//是否有上页
assertEquals(true, page.isHasNextPage());//是否有下页
~
~
~
//获取SqlSession
ss = SqlSessionUtil.getSqlSession();
//加载映射文件
UserMapper mapper=ss.getMapper(UserMapper.class);
//开启分页 获取第一页的五条数据
PageHelper.startPage(1, 5);
//这时候的查询结果就是五条数据
List<UserDto> list=mapper.selectA();
System.out.println(list.size());
for(UserDto user:list) {
System.out.println(user.getTname());
}
//实例分页对象
PageInfo page=new PageInfo(list);
//获取查询寻到的数据总共有多少条
long l=page.getTotal();
System.out.println("总数据"+l);
//获取当前页码
int row=page.getEndRow();
System.out.println(row);
~
~
~
这里省略了SqlSessionUtil工具类,以及mapper映射文件和要映射的实体类。