分頁的方法有很多,今天記錄下一種使用基於物理分頁原理實現分頁的插件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);
如此便可實現分頁