MyBatis分页插件PageHelper的使用

前期准备工作

数据库表

dp.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/netshop?useSSL=true&useUnicode=true&characterEncoding=utf-8
username=root
password=123

mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 
 6 <!--
 7     编写第一个MyBatis程序
 8         1、编写MyBatis核心配置文件
 9         2、编写MyBatis工具类
10  -->
11 
12 
13 <!-- configuration核心配置文件 -->
14 <configuration>
15 
16     <!-- 引入db.properties配置文件 -->
17     <properties resource="db.properties" />
18 
19     <!-- 配置日志 -->
20     <settings>
21         <!-- 配置标准输出日志STDOUT_LOGGING -->
22         <setting name="logImpl" value="STDOUT_LOGGING"/>
23     </settings>
24     
25     <!-- 给实体类起别名 -->
26     <typeAliases>
27         <package name="com.lzp.pojo"/>
28     </typeAliases>
29 
30     <!-- 在mybatis-config.xml中定义 -->
31     <plugins>
32         <!-- com.github.pagehelper为PageHelper类所在包名 -->
33         <plugin interceptor="com.github.pagehelper.PageInterceptor">
34             <!-- 使用MySQL方言的分页 -->
35             <property name="helperDialect" value="mysql"/><!--如果使用mysql,这里value为mysql-->
36             <property name="pageSizeZero" value="true"/>
37         </plugin>
38     </plugins>
39 
40     <!-- 环境配置 -->
41     <environments default="development">
42         <environment id="development">
43             <transactionManager type="JDBC"/>
44             <dataSource type="POOLED">
45                 <property name="driver" value="${driver}"/>
46                 <property name="url" value="${url}"/>
47                 <property name="username" value="${username}"/>
48                 <property name="password" value="${password}"/>
49             </dataSource>
50         </environment>
51     </environments>
52 
53     <!-- 注册所有mapper.xml文件 这里特别要注意的是,XML配置文件的全路径要把点改成/-->
54     <mappers>
55        <mapper class="com.lzp.mapper.GoodsMapper"/>
56     </mappers>
57 </configuration>

mapper接口

 1 package com.lzp.mapper;
 2 
 3 import com.lzp.pojo.Goods;
 4 
 5 import java.util.List;
 6 import java.util.Map;
 7 
 8 /**
 9  * 商品业务接口
10  */
11 public interface GoodsMapper {
12 
13     public List<Goods> listGoods();
14 
15 }

mapper映射文件

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.lzp.mapper.GoodsMapper">
 6 
 7     <select id="listGoods" resultType="goods">
 8         select * from tb_goods
 9     </select>
10 
11 </mapper>

首先、要使用PageHelper插件就要先引入其依赖

1 <dependencies>
2         <dependency>
3             <groupId>com.github.pagehelper</groupId>
4             <artifactId>pagehelper</artifactId>
5             <version>5.0.0</version>
6         </dependency>
7     </dependencies>

然后、在mybatis-config.xml配置文件中定义pageHelper

1 <!-- 在mybatis-config.xml中定义 -->
2     <plugins>
3         <!-- com.github.pagehelper为PageHelper类所在包名 -->
4         <plugin interceptor="com.github.pagehelper.PageInterceptor">
5             <!-- 使用MySQL方言的分页 -->
6             <property name="helperDialect" value="mysql"/><!--如果使用mysql,这里value为mysql-->
7             <property name="pageSizeZero" value="true"/>
8         </plugin>
9     </plugins>

最后、测试

 1 package com.lzp.test;
 2 
 3 import com.github.pagehelper.PageHelper;
 4 import com.github.pagehelper.PageInfo;
 5 import com.lzp.mapper.GoodsMapper;
 6 import com.lzp.pojo.Goods;
 7 import com.lzp.util.MyBatisUtil;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.junit.Test;
10 import java.util.List;
11 
12 /**
13  * @Author LZP
14  * @Date 2021/6/22 20:21
15  * @Version 1.0
16  */
17 public class GoodsTest {
18 
19     @Test
20     public void listGoods() {
21         SqlSession sqlSession = MyBatisUtil.getSqlSession();
22         GoodsMapper mapper = sqlSession.getMapper(GoodsMapper.class);
23 //       分页开始
24         PageHelper.startPage(1, 5);
25         PageInfo<Goods> pageInfo = new PageInfo<>(mapper.listGoods());
26         List<Goods> list = pageInfo.getList();
27         for (Goods g : list) {
28             System.out.println(g);
29         }
30     }
31 
32 }

控制台打印结果如下:

 

posted @ 2021-06-22 23:14  没有你哪有我  阅读(102)  评论(0编辑  收藏  举报