欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2023-03-09 12:09:41|栏目:JAVA代码|点击:

我们实现查询除了

@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进行的物理分页查询。

上一篇:Java多线程之synchronized同步代码块详解

栏    目:JAVA代码

下一篇:springboot vue组件开发实现接口断言功能

本文标题:Mybatis分页查询的实现(Rowbounds和PageHelper)

本文地址:http://www.codeinn.net/misctech/227145.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有