分页的方法有很多,今天记录下一种使用基于物理分页原理实现分页的插件pagehelper与springboot+mybatis的整合:
1、首先在pom.xml文件中添加pagehelper依赖包:
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
</dependency>
2、在mybatis配置文件中添加pagehelper的配置项:
@Bean
public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource());
//分页插件
PageHelper pageHelper = new PageHelper();
Properties props = new Properties();
props.setProperty("reasonable", "true");
props.setProperty("supportMethodsArguments", "true");
props.setProperty("returnPageInfo", "check");
props.setProperty("params", "count=countSql");
pageHelper.setProperties(props);
//添加插件
sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageHelper});
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/*.xml"));
return sqlSessionFactoryBean.getObject();
}
3、使用时只需在进行数据库操作时加上以下语句便可:
//pagenum:当前页,pagesize:每页条数上限
PageHelper.startPage(pageNum,pageSize);
//数据库操作
List<CostPay> costPays = costPayDao.getByOwnerId(condition);
//包含返回记录在内的所有分页信息
PageInfo pageInfo = new PageInfo(costPays);
如此便可实现分页