mybatis学习之分页

分页一般分为物理分页:先查询所有值再分页输出,逻辑分页:直接分页查询输出,mybatis支持物理分页,如下:

1、物理分页:

mapper映射:

<select id="findStudents" resultMap="StudentResult">
    select * from t_student order by id asc
</select>

Dao接口:

/**
     * mybatis分页查询-逻辑分页
     * @param rowBounds
     * @return
     */
    public List<Student> findStudents(RowBounds rowBounds);

测试:

/**
     * 逻辑分页----查询所有数据再分页输出
     * @throws Exception
     */
    @Test
    public void testRowBounds() throws Exception{
        logger.info("学生查询-逻辑分页");
        int offset = 3;        //start
        int limit = 3;        //size
        RowBounds rowBounds = new RowBounds(offset,limit);
        List<Student> studentList = studentDao.findStudents(rowBounds);
        for (Student student : studentList) {
            System.out.println(student);
        }
    }

2、逻辑分页:

mapper映射:

<select id="findStudents2" parameterType="Map" resultMap="StudentResult">
    select * from t_student
    <if test="start != null and size != null">
        limit #{start},#{size}
    </if>
</select>

Dao接口:

/**
     * mybatis分页查询-物理分页
     * @param rowBounds
     * @return
     */
    public List<Student> findStudents2(Map<String, Object> map);

测试:

/**
     * 物理分页----查询分页数据再输出
     * @throws Exception
     */
    @Test
    public void testFind() throws Exception{
        logger.info("学生查询-物理分页");
        Map<String, Object> map = new HashMap<>();
        map.put("start", 0);
        map.put("size", 3);
        List<Student> studentList = studentDao.findStudents2(map);
        for (Student student : studentList) {
            System.out.println(student);
        }
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏QQ空间开发团队的专栏

深入理解Autorelease Pool

MRC下,我们需要手动管理对象的retain和release,或者调用autorelease方法把对象放进AutoreleasePool中来进行内存管理。在AR...

4483
来自专栏服务端思维

服务端开发指南与最佳实战 | 数据存储技术 | MySQL(01)数据类型的使用与选择

对于整数类型,可以使用 TINYINT、 SMALLINT、 MEDIUMINT、 INT、 BIGINT 等。每个整数类型都对应着不同的存储空间。

833
来自专栏郭少华

Spring boot Mybatis-XML方式通用Mapper插件(七)

特别注意,如果使用了1.2.0以上版本 @MapperScan 注解,请使用 tk.mybatis.spring.annotation.MapperScan 注...

551
来自专栏Java技术分享

Hibernate 的性能优化的时候碰到了"抓取策略",有四种

最近在研究 Hibernate 的性能优化的时候碰到了"抓取策略", 由于以前没有详细的研究过,     所以到处找资料, 但是无论从一些讲 Hibernate...

1849
来自专栏码云1024

mysql 数据类型

3384
来自专栏码匠的流水账

聊聊rocketmq的PushConsumerImpl

io/openmessaging/rocketmq/consumer/PushConsumerImpl.java

832
来自专栏xiaoheike

hibernate persist update 方法没有正常工作(不保存数据,不更新数据)

在工程中通过spring aop的方式配置事务,使用hibernate做持久化。在代码实现中使用hibernate persit()方法插入数据到数据库,使用h...

641
来自专栏Python爬虫实战

MySQL从零开始:05 MySQL数据类型

距离上次更新 MySQL 从零开始系列,已经过去了十几天,时间隔得有点长,由于我选用的是 MySQL 的最新版本,网上的教程大多停留在 MySQL 5.x,所以...

943
来自专栏抠抠空间

Django之ORM其他骚操作

Django ORM执行原生SQL # extra # 在QuerySet的基础上继续执行子语句 # extra(self, select=None, wher...

2665
来自专栏chenssy

【死磕Sharding-jdbc】---SQL解析-词法分析

sharding-jdbc对SQL解析的源码主要在下图所示parsing模块中,由下图可知SQL解析主要分为两部分:lexer和parser。lexer就是本文...

612

扫码关注云+社区