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分页查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea取消git托管方式(删除git文件)

    idea取消git托管方式(删除git文件)

    遇到Git文件传输错误或打不开问题时,需进行Git清理和重新配置,首先删除项目中的.git文件和.gitignore文件,若找不到,检查是否为隐藏文件,接着在IDE的设置中,删除所有版本控制模块,最后,若想重新使用Git,可在设置里重新启用并配置,连接至GitHub仓库即可恢复正常
    2024-10-10
  • Java解决线程安全的两种方式分享

    Java解决线程安全的两种方式分享

    这篇文章主要为大家详细介绍了Java中两种常用的解决线程安全的方式——Synchornized和Lock,文中的示例代码简洁易懂,快跟随小编一起学习起来吧
    2023-06-06
  • 一文带你了解Java创建型设计模式之原型模式

    一文带你了解Java创建型设计模式之原型模式

    原型模式其实就是从一个对象在创建另外一个可定制的对象,不需要知道任何创建的细节。本文就来通过示例为大家详细聊聊原型模式,需要的可以参考一下
    2022-09-09
  • IntelliJ IDEA连接MySQL数据库详细图解

    IntelliJ IDEA连接MySQL数据库详细图解

    今天小编就为大家分享一篇关于intellij idea连接mysql数据库详细图解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 使用springboot跳转到指定页面和(重定向,请求转发的实例)

    使用springboot跳转到指定页面和(重定向,请求转发的实例)

    这篇文章主要介绍了使用springboot跳转到指定页面和(重定向,请求转发的实例),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java大文件上传详解及实例代码

    Java大文件上传详解及实例代码

    这篇文章主要介绍了Java大文件上传详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • 详解Java编写并运行spark应用程序的方法

    详解Java编写并运行spark应用程序的方法

    这篇文章主要介绍了详解Java编写并运行spark应用程序的方法,内容详细,结合了作者实际工作中的问题进行具体分析,具有一定参考价值。
    2017-09-09
  • java springboot中如何读取配置文件的属性

    java springboot中如何读取配置文件的属性

    大家好,本篇文章主要讲的是java springboot中如何读取配置文件的属性,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Java中的注解详解(Annotation)

    Java中的注解详解(Annotation)

    文章介绍了Java中的注解,包括注解的定义、元注解、Java内置的三大注解、自定义注解、反射注解以及注解的作用,注解是一种特殊的标记,可以用于类、方法、字段等元素,用于提供元数据信息
    2025-03-03
  • Java 超详细讲解类的定义方式和对象的实例化

    Java 超详细讲解类的定义方式和对象的实例化

    Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面对对象的世界里面,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情
    2022-03-03

最新评论