浅谈MyBatis分页开发,你知道有哪些实现方式呢?

Posted 缘分锝天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈MyBatis分页开发,你知道有哪些实现方式呢?相关的知识,希望对你有一定的参考价值。

分页查询:就是将数据库查询的结果在有限的界面上分好多页显示,分页是许多网站的常用功能,也是最基本的功能。

为什么要分页?减少数据的处理量

 下面用例子演示说明实现分页查询的两种方式:

方式一:

使用limit分页,即在SQL语句中使用limit限定词,如:

1.接口:

    //    分页查询
    List<stu> selectstulimit(Map<String, Integer> map);

2.Mapper.xml

    <select id="selectstulimit" parameterType="map" resultType="stu">
        select ID,name from stu limit #{start},#{end } ;
    </select>

3.测试

所用的数据库表:

    @Test
    public void  selectstulimit() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        stuDao stuDao = sqlSession.getMapper(com.ys.Dao.stuDao.class);
        Map<String, Integer> map = new HashMap<>();
        map.put("start", 1);
        map.put("end", 2);
        List<stu> stuList = stuDao.selectstulimit(map);
        for (stu stu : stuList) {
            logger.info(stu);
        }
        sqlSession.close();
    }

 测试结果如下:

 

 方式二:

使用RowBounds分页,Mybatis提供可以进行逻辑分类的RowBounds类,通过传递RowBounds对象,来进行数据库的分页操作,任何select语句都可以使用它。如:

1.接口:

//使用RowBounds分页查询
List<stu> selectstulimit2();

 2.Mapper.xml

    <select id="selectstulimit2" resultType="stu">
        select ID,name from stu
    </select>

3.测试

所查询数据库表同上

    @Test
    public void selectstulimit2() {
        SqlSession sqlSession = mybatisUtils.getSqlSession();
        RowBounds rowBounds = new RowBounds(0, 3);
        List<stu> stuList = sqlSession.selectList("com.ys.Dao.stuDao.selectstulimit2",null,rowBounds);
        for (stu stu : stuList) {
            logger.info(stu);
        }
        sqlSession.close();
    }

查询结果如下:


 当然还有其他实现方式,比如使用分页插件:PageHelpr,具体用法点击查看——>传送门

 。。。。。。。


现在0.06,睡觉去了。。。

 

 

 

以上是关于浅谈MyBatis分页开发,你知道有哪些实现方式呢?的主要内容,如果未能解决你的问题,请参考以下文章

浅谈MyBatis-Plus学习之插件扩展

Mybatis源码分析自定义缓存分页的实现

内卷严重,不懂MyBatis插件开发怎么行,教你实现MyBatis分页插件

Mybatis分页如何实现?四种常用分页方式你Get到没!

如何使用 mybatis 实现分页

mybatis 中怎样实现oracle分页语句