Mybatis实现分页的三种方式
文章目录
- 1、Limit实现分页
- 2、RowBounds分页(不建议使用)
- 3、MyBatis分页插件PageHelper(了解即可)
1、Limit实现分页
sql语句
SELECT * from user limit startIndex,pageSize
简单示例:
user表
查询一:从第一行数据【 startIndex:0】开始,查询两行【pageSize:2】数据
SELECT * from user limit 0,2;
查询二:从第三行数据【 startIndex:2】开始,查询两行【pageSize:2】数据
SELECT * from user limit 2,2;
查询三:只有一个参数表示从第一行数据开始,查询三行【pageSize:3】数据
SELECT * from user limit 3;
使用Mybatis实现分页,核心SQL
接口
public interface UserMapper {//分页List<User> getUserByLimit(Map<String,Integer> map); }
Mapper.xml
<!--分页--> <select id="getUserByLimit" parameterType="map" resultType="包名.User">select * from user limit #{startIndex},#{pageSize}; </select>
测试
public class UserMapperTest {@Testpublic void getUserByLimit() {SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);HashMap<String, Integer> map = new HashMap<>();map.put("startIndex", 0);map.put("pageSize", 2);List<User> userList = mapper.getUserByLimit(map);for (User user : userList) {System.out.println(user);}sqlSession.close();} }
测试结果
2、RowBounds分页(不建议使用)
不使用SQL实现分页,通过java代码层面实现分页
接口
//分页2:RowBounds List<User> getUserByRowBounds();
Mapper.xml
<!--分页:RowBounds--> <select id="getUserByRowBounds" resultMap="UserMap">select * from user </select>
测试
@Test //分页2:RowBounds public void getUserByRowBounds(){SqlSession sqlSession = MybatisUtils.getSqlSession();//RowBounds实现RowBounds rowBounds = new RowBounds(0, 2);//通过java代码层面实现分页List<User> userList = sqlSession.selectList("com.ping.dao.UserMapper.getUserByRowBounds",null,rowBounds);for (User user : userList) {System.out.println(user);}sqlSession.close(); }
测试结果
3、MyBatis分页插件PageHelper(了解即可)
详细文档:https://pagehelper.github.io/
Mybatis实现分页的三种方式相关推荐
- oracle分页的三种方式,oracle 使用rownum的三种分页方式
rownum是Oracle数据库中的一个特有关键字,返回的是一个数字代表记录的行号. 基础知识:rownum只能做 获取51到100的数据 三种分页的写法: 1.使用minus,原理就是查询出前100 ...
- mybatis实现分页的几种方式
本文目录 借助数组进行分页 借助Sql语句进行分页 拦截器分页 RowBounds实现分页 借助数组进行分页 原理:进行数据库查询操作时,获取到数据库中所有满足条件的记录,保存在应用的临时数组中,再通 ...
- Mybatis传递参数的三种方式
第一种: Dao层使用@Param注解的方法 VersionBox getVersionByVersionNumAndVersionType(@Param("versionNum" ...
- mybatis 传递参数的三种方式
mybatis 框架的主要工作是数据层, 侧重于与数据库打交道的sql语句的编写,对sql也要求比较熟练. mybatis 传递参数的方式主要有三种: 1. 多个参数的传递方式 形式如: ...
- MyBatis实现模糊查询的三种方式
MyBatis实现模糊查询的三种方式 准备 模糊查询 方式一 方式二 方式三 由于#{}是占位符本身,自带单引号,所以在模糊查询时需要一些技巧. 准备 数据库表 bean 模糊查询 以查询出所有用户名 ...
- MyBatis中模糊查询LIKE的三种方式
在操作数据库时,查询是最常用的语句,模糊查询也是数据库SQL中使用频率很高的SQL语句,利用MyBatis框架来进行更加灵活的模糊查询,有如下三种方式: (1)直接传参法 直接传参法,就 ...
- MyBatis插入大量数据效率对比:foreach、SqlSession、sql三种方式批量插入
用mybatis插入数据执行效率对比,对比三种方式(测试数据库为MySQL), 使用 SqlSessionFactory,每一批数据执行一次提交 使用mybatis-plus框架的insert方法,f ...
- MyBatis获取参数值的两种方式以及传参情况
MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${}和#{} 传参情况 演示环境 1.单个字面量类型的参数 2.多个字面量类型的参数 3.map集合类型的参数 4.实体类类型 ...
- QT写word的三种方式
最近项目里用到了QT写word,入了不少坑,也有了一些很基础的认识,简单说说,希望能帮到大家. 三种方式如下: 1.通过html (优点生成速度快,有点html.css基础就能上车:缺点是只支持css ...
最新文章
- USTC并行计算复习
- Spring核心AOP(面向切面编程)
- cmd常见错误及解决方法
- getmenuiteminfo无法读取内存_笔记本内存加装教程,看完包会!为了这篇文章,我把电脑都拆了!...
- linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录
- linux命令中cd / 和 cd ~
- adb logcat 基本用法
- Codeforces 847H - Load Testing
- 线路板铜厚测试软件,厚铜线路板的铜厚是如何实现的
- hadoop单击模式环境搭建
- Python实现多线程并发下载大文件(断点续传支持)
- 使用pako.js压缩、解压数据
- Houdini12:渲染-渲染器SHOP
- 解决warning: #1296-D: extended constant initialiser used告警
- Civil 3d 之枚举 SpiralType
- L1和L2简单易懂的理解
- 医学图像处理与深度学习入门
- OPC 0x00000005 问题
- nc文件处理学习资料
- 如何用标题博得观众眼球