PageHelper是一款MyBatis的分页插件,只需要简单的配置,然后直接调用方法就可以。
1、配置PageHelper插件
在mybatis-config.xml中,配置如下
<plugins> <plugin> inteceptor="com.github.pagehelper.PageInterceptor" </plugin> </plugins>
具体mybatis-config.xml如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 打开延迟加载的开关 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 将积极加载改为消息加载即按需加载 --> <setting name="aggressiveLazyLoading" value="false"/> </settings> <typeAliases> <package name="com.demo.pojo"/> </typeAliases> <plugins> <!--配置PageHelper分页插件--> <plugin interceptor="com.github.pagehelper.PageInterceptor"> </plugin> </plugins> <!--数据库连接环境配置--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="admin"/> </dataSource> </environment> </environments> <!--映射文件配置--> <mappers> <!--基于xml方式映射--> <mapper resource="com/demo/pojo/Category.xml"/> <!--基于注解方式映射--> <mapper class="com.how2java.mapper.CategoryMapper"/> <mapper class="com.how2java.mapper.ProductMapper"/> </mappers> </configuration>
2、使用PageHelper提供的方法进行分页查询测试
package com.demo; import java.io.IOException; import java.io.InputSteam; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.io.Resouces; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.demo.pojo.Product; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; public class TestMyBatis{ public static void main(String[] args) throws IOException{ String resouce="mybatis-config.xml"; InputSteam inputStream=Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream); SqlSession session=sqlSessionFactory.openSession(); PageHelper.offsetPage(0,5);//表示从0开始,每一页显示5条数据 List<Product> list=session.selectList("listCategory"); for(Product p:list){ System.out.println(p); } PageInfo pageInfo=new PageInfo<>(p); System.out.println("总数:"+pageInfo.getTotal());//总个数 System.out.println(pageInfo);//PageInfo{pageNum=1,pageSize=5,size=5,startRow=1,end} session.commit(); session.close(); } }