Mybatis之——分页插件PageHelper的使用

PageHelper使用

1.引入依赖

1
2
3
4
5
6
<!--引入分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>

2.配置

1
2
3
4
5
6
7
8
9
10
11
12
<!--配置分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--选择支持的数据库-->
<property name="helperDialect" value="mysql"/>
<!--
当前页小于0时,查询第一页;
当前页大于最大页是查询最后一页
-->
<property name="reasonable" value="true"/>
</plugin>
</plugins>

3.使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//4.获取代理对象
AccountDao mapper = sqlSession.getMapper(AccountDao.class);
//设置当前页和每页大小
PageHelper.startPage(3,2);
//返回当前页数据
List<Account> all = mapper.findAll();
//封装到PageInfo对象下,可获取对应的分页信息
PageInfo<Account> pageInfo = new PageInfo<>(all);
//获取总页数
int pageNum = pageInfo.getPageNum();
//获取查询每页大小
int pageSize = pageInfo.getPageSize();
//获取当前页的记录数
int size = pageInfo.getSize();
//获取总记录数
long total = pageInfo.getTotal();
//获取总页数
int pages = pageInfo.getPages();
//获取当前页的所有记录对象
List<Account> list = pageInfo.getList();
System.out.println(all);

4.spring整合pagehelper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!-- 3. SqlSessionFactoryBean 负责创建 sqlSessionFactory 对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 3.1 配置数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 3.2 配置驼峰命名 -->
<property name="configuration">
<bean class="org.apache.ibatis.session.Configuration">
<!--开启驼峰-->
<property name="mapUnderscoreToCamelCase" value="true"/>
</bean>
</property>
<!-- 3.3 配置别名 -->
<property name="typeAliasesPackage" value="com.itheima.travel.pojo"/>
<!-- 3.4 配置插件-->
<property name="plugins">
<array>
<!-- 分页插件-->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
<!-- 配置sql映射文件的位置 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描dao包,为dao包下所有的接口创建实现类,并将实现类存放到IOC容器中 -->
<property name="basePackage" value="com.itheima.dao"></property>
</bean>