Mybatis分页查询的实现(Rowbounds和PageHelper)

 更新时间:2022年01月24日 15:55:37   作者:北海冥鱼未眠  
本文主要介绍了Mybatis分页查询的实现(Rowbounds和PageHelper),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

我们实现查询除了

@org.junit.Test
    public void test02(){
        SqlSession session = MybatisUtil.getSession();

        UserDao mapper = session.getMapper(UserDao.class);
        List<User> allUser = mapper.getAllUser();

        session.close();
        for (User user : allUser) {
            System.out.println(user);
        }


    }

还有这样的方式,Mybatis官网有介绍

@org.junit.Test
    public void test06(){
        SqlSession session = MybatisUtil.getSession();
        //参数是接口的全限定类名加包名
        List<User> users = session.selectList("com.dongmu.dao.UserDao.getAllUser");

        for (User user : users) {
            System.out.println(user);
        }

        session.close();
    }

那么我们下面就学习一下一个

在这里插入图片描述

@org.junit.Test
    public void test07(){

        RowBounds bounds =new RowBounds(0,3);

        SqlSession session = MybatisUtil.getSession();



        List<User> users = session.selectList("com.dongmu.dao.UserDao.getAllUser",null,bounds);


        for (User user : users) {
            System.out.println(user);
        }

        session.close();
    }

在这里插入图片描述

这里总结一下自己注意到的细节,它的sql语句我们发现是查询的所有的,所以它实际上是逻辑分页,也就是说把结果全部查询除了然后进行按游标分页。

物理分页:物理分页就是数据库本身提供了分页方式,如MySQL的limit,oracle的rownum ,好处是效率高,不好的地方就是不同数据库有不同的搞法

逻辑分页:利用游标分页,好处是所有数据库都统一,坏处就是因为先查询到所有数据,所有效率低。

下面我们再介绍一个分页插件PageHelper
使用方式:

加入依赖:

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>

在mybatis的主配置文件中,在<environments>之前加入

<plugins>
 <plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins>

在进行失去了查询之前使用方法:

PageHelper.startPage(pageNum,pageSize);

在这里插入图片描述

查询结果

在这里插入图片描述

可以发现我们的PageHelper用到的是PreparedStatement进行的物理分页查询。

到此这篇关于Mybatis分页查询的实现(Rowbounds和PageHelper)的文章就介绍到这了,更多相关Mybatis分页查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解基于MVC的数据查询模块进行模糊查询

    详解基于MVC的数据查询模块进行模糊查询

    这篇文章主要介绍了Java基于MVC的数据查询模块进行模糊查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • java 整型数与Integer的缓存深入理解

    java 整型数与Integer的缓存深入理解

    这篇文章主要介绍了java 整型数与Integer的缓存深入理解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Mybatis传参为逗号分隔的字符串情形进行in条件查询方式

    Mybatis传参为逗号分隔的字符串情形进行in条件查询方式

    这篇文章主要介绍了Mybatis传参为逗号分隔的字符串情形进行in条件查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • java中的序列化解析

    java中的序列化解析

    这篇文章主要介绍了java中的序列化解析,为了将对象进行网络传输或者是持久化,我们需要将对象的状态信息转换为可以存储或者传输的形式,这个转换的过程就叫序列化,需要的朋友可以参考下
    2023-09-09
  • Java直接输出对象变成@.....的问题及解决

    Java直接输出对象变成@.....的问题及解决

    这篇文章主要介绍了Java直接输出对象变成@.....的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java发送http的get、post请求实现代码

    java发送http的get、post请求实现代码

    下面小编就为大家带来一篇java发送http的get、post请求实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • Spring-AOP @AspectJ切点函数之@annotation()用法

    Spring-AOP @AspectJ切点函数之@annotation()用法

    这篇文章主要介绍了Spring-AOP @AspectJ切点函数之@annotation()用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • elasticsearch索引index数据功能源码示例

    elasticsearch索引index数据功能源码示例

    这篇文章主要为大家介绍了elasticsearch索引index功能源码示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 解决bufferedReader.readLine()读到最后发生阻塞的问题

    解决bufferedReader.readLine()读到最后发生阻塞的问题

    这篇文章主要介绍了解决bufferedReader.readLine()读到最后发生阻塞的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringBoot中多环境yml的配置与打包问题

    SpringBoot中多环境yml的配置与打包问题

    这篇文章主要介绍了SpringBoot中多环境yml的配置与打包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09

最新评论