MyBatis-----7.pageHelper分页助手

pageHelper是一款免费的分页插件,可以适用于多种数据库。

使用分页插件可以大大减少代码量,这里将介绍分页插件的使用方法。

1.下载地址

https://github.com/pagehelper/Mybatis-PageHelper

这里我使用的是   jsqlparser-2.0.jar+pagehelper-5.1.10.jar

2.使用方法:

2.1配置分页助手:

  在conf.xml中添加如下代码,注意添加在<properties resource="db.properties"/>后面

<!-- 配置分页插件 -->
<plugins>
        <!-- com.github.pagehelper为PageHelper类所在包名 -->
            <plugin interceptor="com.github.pagehelper.PageInterceptor">
                 <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
             <property name="helperDialect" value="mysql"/>
        </plugin>
</plugins>

2.2定义UsersMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--  com.zhiyou.zyl.UsersMapper.getUser -->
<mapper namespace="com.zhiyou.zyl.dao.UsersDao">
    <select id="selectAll" resultType="com.zhiyou.zyl.bean.Users">
        select * from users
    </select>
</mapper>

2.3测试分页

  class UsersTest {
    static SqlSession session =null;
    static UsersDao ud;
    @BeforeAll
    static void setUpBeforeClass() throws Exception {
        String resource = "conf.xml";
        //加载 mybatis 的配置文件(它也加载关联的映射文件)
        Reader reader = Resources.getResourceAsReader(resource);
        //构建 sqlSession 的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建能执行映射文件中 sql 的 sqlSession
        session = sessionFactory.openSession();
        
        ud=session.getMapper(UsersDao.class);
    }

    @AfterAll
    static void tearDownAfterClass() throws Exception {
        //提交
        session.commit();
    }

    @Test
    void testSelectAll() {
        int pageNum=1;
        int pageSize=2;
        PageHelper.startPage(pageNum, pageSize);
    
        List<Users> users=ud.selectAll();
        PageInfo<Users> list = new PageInfo<Users>(users);        
        
        System.out.println(list);
    }

2.4运行结果

PageInfo{pageNum=1, pageSize=2, size=2, startRow=1, endRow=2, total=4, pages=2, list=Page{count=true, pageNum=1, pageSize=2, startRow=0, endRow=2, total=4, pages=2, reasonable=false, pageSizeZero=false}[Users [id=1, name=张三, age=18], Users [id=2, name=李四, age=19]], prePage=0, nextPage=2, isFirstPage=true, isLastPage=false, hasPreviousPage=false, hasNextPage=true, navigatePages=8, navigateFirstPage=1, navigateLastPage=2, navigatepageNums=[1, 2]}

2.5pageInfo属性介绍:

pageNum: 当前页码

pageSize:  每页数据条数

size:          当前页数据条数

startRow/endRow: 开始/结束条数

total:          总条数

pages:       总页数

list:             结果集

prePage/nextPage:    上一页/下一页

isFirstPage/ isLastPage:    是否为第一页/最后一页

hasPreviousPage/hasNextPage:  是否有上一页/下一页

navigatePages:导航页码数

navigateFirstPage:导航第一页

navigateLastPage:导航下一页

navigatePageNums:  所有导航页

猜你喜欢

转载自www.cnblogs.com/zyl187110/p/11442897.html