SpringMVC+MyBatis下使用Pagehelper插件实现分页功能
原创
©著作权归作者所有:来自51CTO博客作者抹香鲸之海的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.首先在项目中添加PageHelper的Maven依赖
**pom.xml添加分页插件依赖**
<!-- mybatis 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
2.在已经配置好的mybatis配置文件中添加对 PageHelper 插件的属性配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:sqlMapper/*.xml" />
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>dialect=mysql</value>
</property>
</bean>
</array>
</property>
</bean>
3.在Service层中直接调用
List<PaperResearch> list = null;
try {
//引入分页查询,使用PageHelper分页功能
//在查询之前传入当前页,然后多少记录
/**
* pageNum:当前页
sizeNum:每页显示条数
count :是否查询总条数 (true:查询 ,false:不查询)
*/
PageHelper.startPage(Integer.valueOf(pageNum), 5,true);
list = paperResearchMapper.selectByExample(paperResearchExample);
PageInfo<PaperResearch> page=new PageInfo<PaperResearch>(list);
returnMap.put("page", page);
System.out.println("总数量:" + page.getTotal());
System.out.println("当前页查询记录:" + page.getList().size());
System.out.println("当前页码:" + page.getPageNum());
System.out.println("每页显示数量:" + page.getPageSize());
System.out.println("总页:" + page.getPages());
} catch (Exception e) {
e.printStackTrace();
}
注意
1.当一个方法中有多个查询语句时,只有紧跟在PageHelper.starPage()方法后的查询结果才会分页。
2.pageHelper是线程安全所以 查询以后对结果进行分页,如果有需要处理list的 逻辑在分页以后进行处理,不然会出现分页失效的情况。
3.pagehelper.start() 默认初始位置为从1开始,pageNum传0,会查不出结果。