1. 程式人生 > 其它 >MyBatis分頁外掛PageHelper的使用

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 }

控制檯列印結果如下: