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

我们实现查询除了

@org.junit.Testpublic void test02(){SqlSession session = MybatisUtil.getSession(); UserDao mapper = session.getMapper(UserDao.class); List allUser = mapper.getAllUser(); session.close(); for (User user : allUser) {System.out.println(user); }}

还有这样的方式,Mybatis官网有介绍
@org.junit.Testpublic void test06(){SqlSession session = MybatisUtil.getSession(); //参数是接口的全限定类名加包名List users = session.selectList("com.dongmu.dao.UserDao.getAllUser"); for (User user : users) {System.out.println(user); }session.close(); }

那么我们下面就学习一下一个
Mybatis分页查询的实现(Rowbounds和PageHelper)
文章图片

@org.junit.Testpublic void test07(){RowBounds bounds =new RowBounds(0,3); SqlSession session = MybatisUtil.getSession(); List users = session.selectList("com.dongmu.dao.UserDao.getAllUser",null,bounds); for (User user : users) {System.out.println(user); }session.close(); }

Mybatis分页查询的实现(Rowbounds和PageHelper)
文章图片

这里总结一下自己注意到的细节,它的sql语句我们发现是查询的所有的,所以它实际上是逻辑分页,也就是说把结果全部查询除了然后进行按游标分页。
物理分页:物理分页就是数据库本身提供了分页方式,如MySQL的limit,oracle的rownum ,好处是效率高,不好的地方就是不同数据库有不同的搞法
逻辑分页:利用游标分页,好处是所有数据库都统一,坏处就是因为先查询到所有数据,所有效率低。
下面我们再介绍一个分页插件PageHelper
使用方式:
加入依赖:
com.github.pagehelperpagehelper5.1.10

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

在进行失去了查询之前使用方法:
PageHelper.startPage(pageNum,pageSize);

Mybatis分页查询的实现(Rowbounds和PageHelper)
文章图片

查询结果
Mybatis分页查询的实现(Rowbounds和PageHelper)
文章图片

可以发现我们的PageHelper用到的是PreparedStatement进行的物理分页查询。
【Mybatis分页查询的实现(Rowbounds和PageHelper)】到此这篇关于Mybatis分页查询的实现(Rowbounds和PageHelper)的文章就介绍到这了,更多相关Mybatis分页查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读