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 }
控制台打印结果如下: