12、Mybatis之分页插件

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。12、Mybatis之分页插件,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

12.1、引入依赖

image

        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

12.2、配置分页插件

image

注意:plugins标签要在environments标签之前

    <plugins>
        <!--设置分页插件-->
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

12.3、使用示例

12.3.1、未分页查询示例

image

    @Test
    public void testPagehelper(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
        List<Emp> emps = empMapper.selectByExample(null);
        for (Emp emp : emps) {
            System.out.println(emp);
        }
    }

12.3.2、分页查询示例

image

注意:从控制台日志可知,开启分页功能后,Pagehelper会通过拦截器的方式自动在查询sql中添加limit语句;
其中,语句的第一个参数值为(pageNum-1)*pageSize;第二个参数值为pageSize

    @Test
    public void testPagehelper(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);

        //在查询之前,使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
        //pageNum:当前页的页码
        //pageSize:每页显示的条数
        PageHelper.startPage(2,3);

        List<Emp> emps = empMapper.selectByExample(null);
        for (Emp emp : emps) {
            System.out.println(emp);
        }
    }

12.3.3、分页查询进阶示例

image

    @Test
    public void testPagehelper(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);

        //在查询之前,使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
        //pageNum:当前页的页码
        //pageSize:每页显示的条数
        PageHelper.startPage(2,3);

        List<Emp> emps = empMapper.selectByExample(null);

        //在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int navigatePages)获取分页相关数据
        //list:分页之后的数据
        //navigatePages:导航分页的页码数
        PageInfo<Emp> empPageInfo = new PageInfo<Emp>(emps,3);
        System.out.println(empPageInfo);
    }

12.3.3.1、分页相关数据详解

PageInfo{
pageNum=2, pageSize=3, size=3, startRow=4, endRow=6, total=9, pages=3, 
list=Page{count=true, pageNum=2, pageSize=3, startRow=3, endRow=6, total=9, pages=3, reasonable=false, pageSizeZero=false}
[Emp{empId=4, empName='小军', age=null, gender='女', deptId='null'}, 
Emp{empId=5, empName='小明1', age=20, gender='男', deptId='null'}, 
Emp{empId=8, empName='小红', age=25, gender='男', deptId='null'}], 
prePage=1, nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true, hasNextPage=true, 
navigatePages=3, navigateFirstPage=1, navigateLastPage=3, navigatepageNums=[1, 2, 3]
}
属性 解析
pageNum 当前页的页码
pageSize 每页显示的条数
size 当前页显示的真实条数
total 总记录数
pages 总页数
prePage 上一页的页码
nextPage 下一页的页码
isFirstPage 是否为第一页
isLastPage 是否为最后一页
hasPreviousPage 是否存在上一页
hasNextPage 是否存在下一页
navigatePages 导航分页的页码数
navigatepageNums 导航分页的页码,[1, 2, 3]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/194542.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!