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

网友投稿 276 2022-09-01


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

我们实现查询除了

@org.junit.Test

public 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.Test

public 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();

http:// }

那么我们下面就学习一下一个

@org.junit.Test

publhttp://ic 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.eOcYCLEtclose();

}

这里总结一下自己注意到的细节,它的sql语句我们发现是查询的所有的,所以它实际上是逻辑分页,也就是说把结果全部查询除了然后进行按游标分页。

物理分页:物理分页就是数据库本身提供了分页方式,如mysql的limit,oracle的rownum ,好处是效率高,不好的地方就是不同数据库有不同的搞法

逻辑分页:利用游标分页,好处是所有数据库都统一,坏处就是因为先查询到所有数据,所有效率低。

下面我们再介绍一个分页插件PageHelper使用方式:

加入依赖:

com.github.pagehelper

pagehelper

5.1.10

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

在进行失去了查询之前使用方法:

PageHelper.startPage(pageNum,pageSize);

查询结果

可以发现我们的PageHelper用到的是PreparedStatement进行的物理分页查询。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:pytest的fixture的详细使用 (更灵活高级的前/后置处理方法)(pytest.fixtrue()区别)
下一篇:pytest setup和teardown等前置后置函数的用法(pytest官方文档)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~