一、
Mybatis
框架的分页插件
PageHelper
是目前我用过的最简单的分页插件了,该插件
目前支持
Oracle
,
Mysql
,
MariaDB
,
SQLite
,
Hsqldb
,
PostgreSQL
六种数据库分页。
他的使用非常简单,
简要步骤如下:
第一步:
添加
jar
包
到工程中,由于我是用的是
maven
创建的工程,因此在连接数据库的工程中的
pom
文件
中添加依赖就可以了,如下图:
第二步:在
SqlMapConfig.xml
,配置一个
plugin
,
如下
<!--配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!--指定使用的数据库是什么 -->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
第二步:在
sql
语句执行之前,添加一个
PageHelper.startPage(page,rows)
PageHelper.startPage(page, rows); //设置页码和每页显示个数
第三步:执行查询语句即可。
第四步:
取分页结果
。创建一个
PageInfo
对象,
需要的参数
:
查询结果返回的
list
。从
PageInfo
中取出分页结果
//取分页后结果
PageInfo<Item> pageInfo = new PageInfo<>(list);
long total = pageInfo.getTotal(); //获取总个数
System.out.println("total:" + total);
int pages = pageInfo.getPages(); //获取当前页
System.out.println("pages:" + pages);
int pageSize = pageInfo.getPageSize(); //每页个数
System.out.println("pageSize:" + pageSize);
//最后返回需要的结果就行,此处的Result 是我用来给前台返回json格式数据的封装类,里面提供了total(总数)和rows(数据集合)两个属性
PageResult result = new PageResult();
result.setTotal(pageInfo.getTotal());
result.setRows(list); //设置查询的结果集
returnresult;
web
层只需提供
page
和
rows
两个参数即可
,
当然也可以设置查询条件
:
@RequestMapping("/item/list")
@ResponseBody //把pojo转换成json数据返回
public PageResult getItemList(Integer page, Integer rows){
PageResult result = itemService.getItemList(page, rows);
return result;
}