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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • N70常用软件大集合

    N70常用软件大集合管理软件[文件管理]SmartFilemanv1.03汉化版[进程管理]AppManv1.04完美简体中文优化MMC绿色版[文件管理]SystemExplorerv1.8汉化版[程序管理]Fexplorerv1.15完美汉化完全版《N70拨号大字体》+《N70解决opera8.5上网一些地方显示口口的字体》英文机N70用的完美中文字体[压缩工具]解压利器zipman2.

    2022年7月11日
    24
  • goland 2021.7 激活码【2021最新】

    (goland 2021.7 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月20日
    197
  • 关于Pytorch中双向LSTM的输出表示问题

    关于Pytorch中双向LSTM的输出表示问题在使用pytorch的双向LSTM的过程中,我的大脑中蒙生出了一个疑问。双向的lstm的outputs的最后一个状态与hidden,两者之间肯定有所联系,但具体是什么样子的呢?会不会hidden状态存储的就是outputs的最后一个状态,这样的话,岂不是会导致hidden并不能表示整个序列的双向信息吗?带着这个疑问,我开始了实验。具体的实验代码,这里就不放了。直接放实验结果吧。output_size:torch.Size([14,32,100])hidden_size:torch.S

    2022年6月22日
    68
  • initramfs-kernel_deepin initramfs

    initramfs-kernel_deepin initramfsOtherlanguages:一些基于Linux的计算机系统系统需要一个intramfs才能正常启动。在本指南中,将说明initramfs的概念,以及如何正确地创建和管理initramfs。Initramfs是什么介绍许多用户是没有必要关心initramfs系统的。他们的系统使用了简单的分区方案,而且没有奇奇怪怪的驱动程序或者设置(如加密的文件系统),因此Linux内核完全能够把…

    2022年8月11日
    7
  • getparameter方法的作用_get to和arrive的区别

    getparameter方法的作用_get to和arrive的区别getParameter和getAttribute区别(超详细分析)对getParameter过程,如下图:对getAttribute过程,如下图:两者区别:①getParameter()获取的是客户端设置的数据。getAttribute()获取的是服务器设置的数据。②getParameter()永远返回字符串getAttribute()返…

    2025年8月19日
    2
  • Mysql的两种引擎的区别

    Mysql的两种引擎的区别

    2021年11月6日
    38

发表回复

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

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