MyBatis 分页查询

MyBatis 分页查询MyBatis通过limit关键字或RowBounds类进行分页查询。

大家好,又见面了,我是你们的朋友全栈君。

1. 利用 limit 关键字

接口定义:

public interface AccountMapper { 
   
    // map 类型可以传入多个参数
    List<Account> findPage(Map<String, Integer> param);
}

select 标签:

<select id="findPage" resultMap="pageMap">
    select  * from t_account limit #{offset},#{limit}
</select>

测试:

@Test
public void testFindPage() { 
   
    Map<String, Integer> map = new HashMap<>();
    // 因为 xml 中指定的属性为 offset 和 limit
    // 所以 map 传入的键需与之对应
    map.put("offset", 0);
    map.put("limit", 2);
    List<Account> page = accountMapper.findPage(map);
    System.out.println(page);
}

2. 使用 RowBounds(了解)

接口定义:

public interface AccountMapper { 
   
    // 使用 RowBounds 作为入参
    List<Account> findPage2(RowBounds rowBounds);
}

select 标签:

<select id="findPage2" resultMap="pageMap">
    select * from t_account
</select>

测试:

@Test
public void testFindPage2() { 
   
    RowBounds rowBounds = new RowBounds(0, 2);
    List<Account> accountList = accountMapper.findPage2(rowBounds);
    System.out.println(accountList);
}
  • RowBounds 会将查询出所有满足条件的数据,然后根据 offsetlimit 参数(构造函数入参)取指定区间的数据。
  • 显然当数据庞大时,效率较低。

3. PageHelper 插件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136964.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sudo命令 sudoers文件

    sudo命令 sudoers文件超级用户权限授权规则含义root ALL=(ALL:ALL)ALL用户名root ALL=(ALL:ALL)ALL主机名root ALL=(**ALL:ALL**)ALL目标用户:组,以谁的身份去执行root ALL=(ALL:ALL)**ALL**命令别名定义>Host_Alias:主机的列表>User_Alias:具有sudo权限的用户的列表

    2022年6月20日
    29
  • Redis学习——Redis持久化之AOF备份方式保存数据

    新技术的出现一定是在老技术的基础之上,并且完善了老技术的某一些不足的地方,新技术和老技术就如同JAVA中的继承关系。子类(新技术)比父类(老技术)更加的强大!在前面介绍了 Redis学习——Redis持久化之RDB备份方式保存数据之后,下面在整理和学习一下Redis的AOF方式保存数据。

    2022年2月26日
    45
  • 2021-07-22MATLAB基于元胞自动机模型的传染病扩散模型

    2021-07-22MATLAB基于元胞自动机模型的传染病扩散模型MATLAB 基于元胞自动机模型的传染病扩散模型基本思路 地图矩阵可以分为两类 一类是健康人矩阵 一类是感染者矩阵 健康人感染后则落入感染者矩阵 感染者康复后则升上健康人矩阵通过建立三维矩阵 Track 在 x 轴和 y 轴之上加入时间轴形成三维 来追踪已感染的人的感染时间 从而判定康复 通过设置 NewMap 和 NewPatientMa 两个过渡矩阵来更新每次的随机移动 防止先更新的人在遍历过程中再次被选中导致一个回合内多次移动 将地图分为两种 一种是健康人地图 一种是病人地图 多个人可以在同一个点

    2025年11月5日
    4
  • 第五十二篇:Cascade Classifier Training详解

    第五十二篇:Cascade Classifier Training详解这是转自官方的 http opencv itseez com master dc d88 tutorial traincascade html 收了 以后方便看 Introduction trainingandd Detectionsta

    2025年12月10日
    3
  • javascript instanceof_javascript插件

    javascript instanceof_javascript插件连接:http://houliang4285.iteye.com/blog/1585157

    2022年10月14日
    1
  • intellij idea 激活码(JetBrains全家桶)

    (intellij idea 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~B…

    2022年3月22日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号