初学Mybatis之 Limit 或 RowBounds 实现分页

Limit 分页:

startIndex 起始位置,pageSize 每页显示个数

select * from mybatis.`user` limit startIndex,pageSize;

比如 limit 0,2;

从第零个开始查,每页显示两个(如果第一个数字是 1,其实是从第二条数据开始展示)

如果 limit 后只有一个数(比如 limit 3;),即显示这个数的数据条数(显示 3 条数据)

UserMapper 接口:写个方法

User 类是根据表字段设置的变量,无参、有参、get/set 方法

package com.demo.dao;import com.demo.pojo.User;import java.util.List;
import java.util.Map;public interface UserMapper {//分页List<User> getUserByLimit(Map<String,Integer> map);
}

UserMapper.xml:

id 与接口名一致

parameterType 参数类型为 map

resultType 返回结果为 sql 语句的全限定名(设了 typeAliases 别名)

    <!-- 分页 --><select id="getUserByLimit" parameterType="map" resultType="user">select * from mybatis.user limit #{startIndex},#{pageSize}</select>

 测试类:

构造 map,new 一个 HashMap

通过 put 方法设置起始位置和页面展示个数

遍历数组输出查询结果

最后关闭 sqlSession,避免造成资源浪费

package com.demo.dao;import com.demo.pojo.User;
import com.demo.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.HashMap;public class UserDaoTest {@Testpublic void getUserByLimit(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);HashMap<String,Integer> map = new HashMap<String, Integer>();map.put("startIndex",0);map.put("pageSize",2);for (User user : mapper.getUserByLimit(map)) {System.out.println(user);}sqlSession.close();}
}

 RowBounds 分页:(面向对象)

UserMapper 接口:

package com.demo.dao;import com.demo.pojo.User;import java.util.List;public interface UserMapper {List<User> getUserByRowBounds();
}

UserMapper.xml:

    <select id="getUserByRowBounds" resultType="user">select * from mybatis.user</select>

测试类:

package com.demo.dao;import com.demo.pojo.User;
import com.demo.utils.MybatisUtils;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;public class UserDaoTest {@Testpublic void getUserByRowBounds(){SqlSession sqlSession = MybatisUtils.getSqlSession();//RowBounds实现RowBounds rowBounds = new RowBounds(1,3);//通过Java代码层实现分页List<User> userList = sqlSession.selectList("com.demo.dao.UserMapper.getUserByRowBounds",null,rowBounds);for(User user:userList){System.out.println(user);}sqlSession.close();}
}

Mybatis 同时也提供了分页插件 PageHelper,详情查看链接

如何使用分页插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源物联网网关ThingsBoard IoT Gateway

前几天测试了Neuron&#xff0c;这是一个令人印象深刻的平台&#xff0c;不过它不能算是完全免费的平台&#xff0c;因为它还是有商业许可要求的&#xff0c;挺贵的&#xff0c;大几万的&#xff0c;而且它有走向闭源的趋势。所以也在寻找它的替代方案。 今天看到一个ThingsBo…

Django项目中报错:django.template.exceptions.TemplateDoesNotExist: index.html

访问127.0.0.1&#xff1a;8000访问出错 查看报错原因 到Django项目当中找到settings.py&#xff0c;找到TEMPLATES中的DIRS: 添加如下代码&#xff0c;并导入OS模块&#xff1a; "DIRS": [os.path.join(BASE_DIR,templates)] 再次访问IP地址&#xff1a;

C++(入门1)

C参考文档 Reference - C Reference C 参考手册 - cppreference.com cppreference.com 第一个C程序 #include<stdio.h> int main() {printf("Hello C\n");return 0; }由上述代码可知C是兼容C语言 第一个C标准程序 #include<iostream> using names…

【机器学习】智驭未来:机器学习如何重塑制造业的转型与升级

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#x1f4d2;2. 机器学习重塑制造业生产流程&#x1f338;预测性维护&#xff1a;减少停机时间&#xff0c;提高设…

C语言日常练习Day13

目录 一、设半径r1.5&#xff0c;圆柱高h3&#xff0c;求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积 二、编写程序&#xff0c;用getchar函数读入两个字符给c1,c2&#xff0c;然后分别用putchar函数和printf函数输出这两个字符 三、输入4个整数&#xff0c;要求按由小…

OD C卷 - 体育场找座位

体育场找座位 &#xff08;100&#xff09; 体育场有一排座位&#xff08;已有落座观众&#xff09;&#xff0c;观众之间必须至少一个空位才允许落座&#xff1b;在不移动现有观众座位的情况下&#xff0c;最多还能坐下多少人&#xff1f; 输入描述&#xff1a; 数组表示每个…

RHCE之seLinux和防火墙

目录 SELinux: SELinux工作原理&#xff1a; 常用的SELinux的几种文件类型&#xff1a; 1、文件类型&#xff08;file type&#xff09;&#xff1a;用于限制文件的访问。 2、进程类型&#xff08;process type&#xff09;&#xff1a;用于限制进程的行为。常见的类型包括…

测试面试宝典(三十二)—— 你是怎么测试接口的?

首先&#xff0c;在测试接口之前&#xff0c;我会仔细分析接口的需求文档和技术规格&#xff0c;明确接口的功能、输入输出参数、预期的返回结果以及可能的异常情况。 然后&#xff0c;我会使用工具如 Postman 或 Jmeter 来发送请求对接口进行测试。对于常见的 HTTP 接口&…

实现共模噪声电流相互抵消的方法

共模传导路径中噪声电流相互抵消&#xff0c;从而使总的共模电流减小&#xff0c; 终达到降噪的目的。目前为实现共模噪声电流相互抵消&#xff0c;主要是采用动点电容抵消法。 动点电容抵消法原理 动点电容抵消法就是选取合适的动点&#xff0c;添加原副边跨接电容&#xff0c…

如何判断应该设计类、子类、抽象类或接口?

如何判断应该设计类、子类、抽象类或接口&#xff1f; 1、设计新类1.1 原则1.2 解释1.3 示例 2、设计子类2.1 原则2.2 解释2.3 示例 3、设计抽象类额3.1 原则3.2 解释3.3 示例 4、设计接口4.1 原则4.2 解释4.3 示例 来源&#xff1a;《Head First Java》第二版&#xff1a;227 …

tof系统标定流程之四相位深度计算详解

1、芯片介绍 S5K33DX是一款高度集成的间接飞行时间(tof)传感器,旨在实现3d深度传感。S5K33DX具有VGA分辨率和7um像素。相机集成在tof系统中,该tof系统还包括由S5K33DX控制的红外(IR)波段调制光源。S5K33DX芯片包括解调tof像素阵列、模拟/混合信号处理电路,包括调制信号生…

黑马头条Day10-定时计算热点文章、xxl-job

一、今日内容 1. 需求分析 目前实现的思路&#xff1a;从数据库直接按照发布时间倒序查询 问题&#xff1a; 如果访问量比较大&#xff0c;直接查询数据库&#xff0c;压力较大新发布的文章会展示在前面&#xff0c;并不是热点文章 2. 实现思路 解决方案&#xff1a;把热点…

关于三星机玩游戏长时间不操作锁屏的解决办法

com.samsung.android.game.gametools 三星游戏助推器 主版机 问题描述&#xff1a; 在玩游戏是长时间不点击就会出现屏幕锁 经过测试抓取发现是三星的应用 三星系统的应用:三星游戏助推器 解决方案&#xff1a; 通过ADB命令停用系统应用 直接在adb命令中输入 adb shell pm di…

CCS(Code Composer Studio 10.4.0)编译软件中文乱码怎么解决

如果是所有文件都出现了中文乱码这时建议直接在窗口首选项中修改&#xff1a;选择"Window" -> "Preferences"&#xff0c;找到"General" -> "Workspace"&#xff0c;将"Text file encoding"选项设置为"Other&quo…

深度解析Linux-C——函数和内存管理

目录 函数指针&#xff1a; 指针函数&#xff1a; 参数为指针的函数&#xff1a; 参数为数组的函数&#xff1a; C语言内存管理 stdlib.h头文件常用函数介绍 1、局部变量 2、全局变量 3、 堆空间变量 4、静态变量 5、常量 函数指针&#xff1a; 指向函数的指针&#…

Linux文件与相关函数的知识点3

main函数参数 int main(int argc,char *argv[]) { return 0; } C语言规定了main函数的参数只能有两个&#xff0c;一个是argc,一个是argv并且&#xff0c;argc只能是整数&#xff0c;第二个必须是指向字符 串的指针数组。 argc: 参数表示命令行中参数的个数&#xff0…

Java实现七大排序(二)

一.交换排序 1.冒泡排序 这个太经典了&#xff0c;每个学编程都绕不开的。原理跟选择排序差不多&#xff0c;不过冒泡排序是直接交换。 public static void bubbleSort(int[] array){for (int i 0; i < array.length - 1; i) {for (int j 0; j < array.length-1-i; j…

域内攻击手法——AS-REP Roasting攻击和Kerberoasting攻击

一、AS-REP Roasting攻击 1、AS-REP Roasting攻击原理 AS-REP Roasting是一种对用户账户进行离线爆破的攻击方式。但是该攻击方式使用上比较受限&#xff0c;因为其需要用户账户设置不要求Kerberos 预身份验证选项&#xff0c;而该选项默认是没有勾选的。Kerberos 预身份验证…

20240727 每日AI必读资讯

&#x1f310;OpenAI向Google宣战&#xff0c;重磅推出AI搜索引擎SearchGPT &#xff01; - 将 AI 与实时网络信息结合 提供生成式UI结果 - SearchGPT 结合网络最新信息可以直接回答问题&#xff0c;同时注明相关来源链接。 - 还可以像与人对话一样提出后续问题&#xff0c;…

进程概念(三)----- fork 初识

目录 前言1. pid && ppid2. forka. 为什么 fork 要给子进程返回 0&#xff0c; 给父进程返回子进程的 pid &#xff1f;b. 一个函数是如何做到两次的&#xff1f;c. fork 函数在干什么&#xff1f;d. 一个变量怎么做到拥有不同的内容的&#xff1f;e. 拓展&#xff1a;…