Mybatis分页插件PageHelper的使用
1 POM文件中引入依赖
<!-- 分页助手 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2 在配置文件中加入(spring boot项目不需要配置,我这里没有用spring boot的启动类启动)
注意 <plugins> 在mybatis-config.xml文件中的位置,必须要符合 http://mybatis.org/dtd/mybatis-3-config.dtd 中指定的顺序:
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?,
objectFactory?, objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库-->
<!--<property name="dialect" value="mysql"/>-->
</plugin>
</plugins>
3如果使用默认的PageInfo
PageHelper.startPage(3, 2); List<CoachClassinfo> list = mapper.selectByCoachid(33); PageInfo<CoachClassinfo> pageInfo = new PageInfo<>(list);
PageInfo是插件作者给我们自己定义自己的PageBean,提供的一个参考例子。
我们可以自定义一个和PageInfo类似的分页结果Bean
import com.github.pagehelper.Page;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author: chenglongyi
**/
@Data
public class PageBen<T> implements Serializable {
private static final long serialVersionUID = 8656597559014685635L;
private long total; //总记录数
private List<T> list; //结果集
private int pageNum; // 第几页
private int pageSize; // 每页记录数
private int pages; // 总页数
private int size; // 当前页的数量 <= pageSize,该属性来自ArrayList的size属性
public PageBen(List<T> list) {
if (list instanceof Page) {
Page<T> page = (Page)list;
this.total = page.getTotal();
this.list = page.getResult();
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.size = page.size();
}
}
}
然后在代码中可以使用:
PageHelper.startPage(3, 2);
List<CoachClassinfo> list = mapper.selectByCoachid(33);
PageBen<CoachClassinfo> pageInfo = new PageBen<>(list);
使用时可能需要注意的点: PageHelper.startPage(pageNum,pageSize);后面一句必须是基于mapper的查询,否则会不生效。

浙公网安备 33010602011771号