MyBatis分页插件PageHelper的具体使用
MyBatis分页插件PageHelper是MyBatis框架中的一个分页插件,它可以帮助开发者轻松地实现数据库的分页功能。PageHelper插件可以自动将已经写好的SQL语句进行分页加工,使得开发者无需关心SQL语句的分页问题。
PageHelper的使用优点:
* 无需自己封装、关心SQL分页等问题
* 使用非常方便
* 前端取数据也很方便
PageHelper的使用步骤:
1. 引入PageHelper依赖
在Maven项目中,需要引入PageHelper依赖,添加以下依赖项:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
```
2. 配置applicationContext.xml文件
在Spring的SqlSessionFactoryBean中增加一个分页拦截器属性:
```xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
<!-- 这里设定你的数据库类型 -->
helperDialect=mysql
</value>
</property>
</bean>
</array>
</property>
</bean>
```
3. 调用PageHelper的方法
在Service方法中调用PageHelper的静态方法startPage,传入需要查询的页号和每页大小,返回PageHelper插件提供的PageInfo对象:
```java
public PageInfo<T> selectPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<T> list = mapper.selectByExample(null);
PageInfo<T> pageInfo = new PageInfo<T>(list);
return pageInfo;
}
```
4. PageInfo类说明
PageInfo类是PageHelper插件提供的用于描述分页信息的类,包含了当前页、每页数量、当前页数量、总记录数、总页数、结果集等信息:
```java
public class PageInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//前一页
private int prePage;
//下一页
private int nextPage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
}
```
通过PageInfo对象,可以轻松地获取分页信息,例如当前页、每页数量、总记录数、总页数等。
- 1
- 2
前往页