Mybatis分页查询的实现(Rowbounds和PageHelper)
我们实现查询除了
@org.junit.Testpublic void test02(){SqlSession session = MybatisUtil.getSession(); UserDao mapper = session.getMapper(UserDao.class); ListallUser = mapper.getAllUser(); session.close(); for (User user : allUser) {System.out.println(user); }}
还有这样的方式,Mybatis官网有介绍
@org.junit.Testpublic void test06(){SqlSession session = MybatisUtil.getSession(); //参数是接口的全限定类名加包名Listusers = session.selectList("com.dongmu.dao.UserDao.getAllUser"); for (User user : users) {System.out.println(user); }session.close(); }
那么我们下面就学习一下一个
文章图片
@org.junit.Testpublic void test07(){RowBounds bounds =new RowBounds(0,3); SqlSession session = MybatisUtil.getSession(); Listusers = 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
使用方式:
加入依赖:
com.github.pagehelper pagehelper5.1.10
在mybatis的主配置文件中,在
在进行失去了查询之前使用方法:
PageHelper.startPage(pageNum,pageSize);
文章图片
查询结果
文章图片
可以发现我们的PageHelper用到的是PreparedStatement进行的物理分页查询。
【Mybatis分页查询的实现(Rowbounds和PageHelper)】到此这篇关于Mybatis分页查询的实现(Rowbounds和PageHelper)的文章就介绍到这了,更多相关Mybatis分页查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- mybatis的mapper文件内容回顾
- MyBatis中Mapper配置常见问题(持续更新)
- Mybatis通用Mapper(转)
- Maven发布项目丢失Mybatis Mapper包的映射问题
- mybatis+spring boot, mapper 提示Could not autowire. No beans of … type found
- MyBatis配置Mapping,JavaType和JDBCType的对应关系
- 实践006-elasticsearch查询之1-URI Search查询
- Mybatis Generator生成Mybatis Dao接口层*Mapper.xml以及对应实体类
- Java|MyBatis简介及下载地址
- mysql|MyBatis ResultMap结果集映射