MyBatis分頁外掛PageHelper的使用
阿新 • • 發佈:2021-06-23
前期準備工作
資料庫表
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 <packagename="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 }
控制檯列印結果如下: