Mybatis分页查询的实现(Rowbounds和PageHelper)
程序员文章站
2022-03-04 12:29:15
我们实现查询除了@org.junit.test public void test02(){ sqlsession session = mybatisutil.getsession(...
我们实现查询除了
@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分页查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
java使用插件pagehelper在mybatis中实现分页查询
-
Oracle使用MyBatis中RowBounds实现分页查询
-
Oracle使用MyBatis中RowBounds实现分页查询功能
-
java使用插件pagehelper在mybatis中实现分页查询
-
使用 Mybatis 实现数据库的增删改查、Map和模糊查询
-
mybatis模糊查询、分页和别名配置的方法
-
Mybatis Plus整合PageHelper分页的实现示例
-
springboot整合mybatis-plus实现多表分页查询的示例代码
-
mybatis-plus分页查询的实现示例
-
springboot整合mybatis使用三:使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块