一、引入依赖
pom.xml
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
二、在SqlSessionFactoryBean中配置pagehelper插件
spring-mybatis.xml
<bean id="SqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="druidDataSource"/>
<property name="typeAliasesPackage" value="com.health.pojo"/>
<property name="mapperLocations" value="classpath:mappers/*Mapper.xml"/>
<!--分页插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<!--reasonable:默认值为false。
当设为true时,pageNum<=0时会查询第一页,pageNum>pages(超过总数时),会查询最后一页。-->
<property name="properties" value="reasonable=true"/>
</bean>
</array>
</property>
</bean>
三、测试
userService.getAllUser()方法会获取数据库中的所有user信息,并封装成List集合。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/spring-mybatis.xml")
public class pageHelperTest {
@Autowired
UserService userService;
@Test
public void testPageHelper(){
//pageNum:当前页, pageSize:一页能容纳的数据
PageHelper.startPage(1,3);
//紧跟着的第一个select方法会被分页
List<User> allUser = userService.getAllUser();
//用PageInfo对结果进行包装
PageInfo<User> pageInfo = new PageInfo<>(allUser);
System.out.println("获取总页数:"+pageInfo.getPages());
System.out.println("获取当前页码:"+pageInfo.getPageNum());
System.out.println("获取总记录数:"+pageInfo.getTotal());
System.out.println("是否是第一页:"+pageInfo.isIsFirstPage());
System.out.println("是否是末页:"+pageInfo.isIsLastPage());
System.out.println("获取当前页数据:"+pageInfo.getList());
}
}
运行结果: