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 插件

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • poj 1146

    poj 1146题目链接:http://poj.org/problem?id=1146此题求所给字符串按字典序的下一个由原串字母排列的串,题目不难,开始看错了,wrong一次#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intargc,char**argv){…

  • 导航上显示某个地点已关闭什么意思_大众MIB(275)教程之导航使用「建议收藏」

    导航上显示某个地点已关闭什么意思_大众MIB(275)教程之导航使用「建议收藏」大众可以说近几年的发展非常快,仅车载收音机都更换了好几代了。从最初的单纯收音机到后来的6碟CD机RCD510,最初国内上市的导航RNS510,还有后来自带蓝牙的RNS315,再到PQ平台187A,当初抄的也是火的很几乎每天都能看到187A的帖子,直到出现了升级版的187B,这个自带carplay和百度canlife的PQ平台的机器一下将老款车型导航的改装推上了最巅峰,也把一款拆车机…

  • 线程池如何创建线程_创建线程池的七个参数

    线程池如何创建线程_创建线程池的七个参数Executors如何创建线程池?Executors类是从JDK1.5开始就新增的线程池创建的静态工厂类,它就是创建线程池的,但是很多的大厂已经不建议使用该类去创建线程池。原因在于,该类创建的很多线程池的内部使用了无界任务队列,在并发量很大的情况下会导致JVM抛出OutOfMemoryError,直接让JVM崩溃,影响严重。但是Executors类究竟是如何使用…

  • 机器学习算法——线性回归(超级详细且通俗)

    机器学习算法——线性回归(超级详细且通俗)通俗理解线性回归回归分析什么是回归分析呢?这是一个来自统计学的概念。回归分析是指一种预测性的建模技术,主要是研究自变量和因变量的关系。通常使用线/曲线来拟合数据点,然后研究如何使曲线到数据点的距离差异最小。例如,存在以下数据然后我们拟合一条曲线f(x):回归分析的目标就是要拟合一条曲线,让图中红色线段加起来的和最小。线性回归(简介)线性回归是回归分析的一种。假设目标值(因变量)与特征值(自变量)之间线性相关(即满足一个多元一次方程,如:f(x)=w1x1+…+wnxn+b.)。然后构

  • 60道逻辑推理题及答案[通俗易懂]

    60道逻辑推理题及答案[通俗易懂]作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言程序员面试题中经常会出现一些烧脑逻辑题,本人觉得这种题目非常有趣,于是收集了一些分享给大家!【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1…

  • java properties读取配置文件_jdk的path变量应该怎么设置

    java properties读取配置文件_jdk的path变量应该怎么设置JettywarNamewarWEB-INFjetty-webxmlTomcatMETA-INFcontextxmlServerxml默认contextxmlURL:http://hostname.com/contextPath/servletPath/pathInfoJetty如果没有contextPath,则默认使用root上下文,root上下文的路

发表回复

您的电子邮箱地址不会被公开。

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