【Mybatis】10 实现分页 & 分页插件
回顾SQL分页查询
也就是说,在查询结果的最后控制返回的起始位置&记录数量
参数1:返回的开始位置
参数2:要返回的记录数
但是,如果说是只写了一个参数,直接表示参数2处理
LIMIT [start index],size;
实际开发不会只写一个参数,用户默认打开一定是从第一条开始的
即 0 ,显示的记录数
实现Mybatis的分页查询
参数的数据类型选型问题,到底怎么注入参数才算合适?
如果频繁使用,不如自己封装这样一个参数类,狂神则使用万用Map演示的
Map万能就没什么太大必要取写了,我这里则封装一个参数类好了
@Alias("limit")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LimitSqlParam {
private Integer startIndex;
private Integer perSize;
}
把分页的方法参数写成这个
List<User> getUserByLimit(LimitSqlParam sqlParam);
Mapper的SQL配置
测试结果
使用RowBounds实现分页【补充】
SQL不需要参数注入,而是通过RowBounds对象实现,
这跟我的Limit参数类不是一个道理吗?
我们的SQL方法不需要参数实现
List<User> getUserByRowBounds();
然后SQL语句更不需要SQL参数
测试时实现注入
暂时不明白第二个参数的意义是?
这种方法是注入方法的全限定名 + RowBounds对象实现
其返回的集合泛型默认为Object,这不泛型.jpg
@Test
public void rowBoundsTest(){
logger.info("- - - - TESTING - - - -");
SqlSession sqlSession = MybatisUtil.getSqlSession(true); RowBounds rowBounds = new RowBounds(3, 4); List<User> list = sqlSession.selectList("cn.dai.mapper.UserMapper.getUserByRowBounds", null, rowBounds); for (User user: list) {
System.out.println(user);
} sqlSession.close();
}
分页插件
Mybatis Page Helper
https://pagehelper.github.io/
如何使用
https://pagehelper.github.io/docs/howtouse/
实际上是根据Mybatis官方提供的插件扩展实现的
不过详细还得仔细读文档才知道
【Mybatis】10 实现分页 & 分页插件的更多相关文章
- MyBatis学习总结_17_Mybatis分页插件PageHelper
如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...
- MyBatis Generator实现MySQL分页插件
MyBatis Generator是一个非常方便的代码生成工具,它能够根据表结构生成CRUD代码,可以满足大部分需求.但是唯一让人不爽的是,生成的代码中的数据库查询没有分页功能.本文介绍如何让MyBa ...
- 九:SpringBoot-整合Mybatis框架,集成分页助手插件
九:SpringBoot-整合Mybatis框架,集成分页助手插件 1.Mybatis框架 1.1 mybatis特点 1.2 适用场景 2.SpringBoot整合MyBatis 2.1 核心依赖 ...
- mybatis对mysql进行分页
Mybatis对mysql数据库分页 在generator中增加插件,下载地址http://download.csdn.net/detail/shunlongjin/6937045 <plugi ...
- 使用jQuery开发datatable分页表格插件
当系统数据量很大时,前端的分页.异步获取方式就成了较好的解决方案.一直以来,我都希望使用自己开发的 jquery 插件做系统. 现在,学习了 jquery 插件开发之后,渐渐地也自己去尝试着开发一些简 ...
- Spring Boot mybatis HashMap +layui 通用分页
背景: mybatis 常用数据查询的方法都是先建实体类,再建Mapper,最后写Service,如果只是单纯的去查询数据显示,这样操作太麻烦.本文就以mybatis +layui创建通用分页类,简化 ...
- Java基础-SSM之mybatis的统计函数和分页查询
Java基础-SSM之mybatis的统计函数和分页查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Oracle使用MyBatis中RowBounds实现分页查询
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...
- 全栈开发必备的10款 Sublime Text 插件
Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.Sublime Text 更妙的是它的可扩展性.所以,这里挑选了全栈开发必备的10款 Sublime T ...
- 全栈开发必备的10款Sublime Text 插件
Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.Sublime Text 更妙的是它的可扩展性.所以,这里挑选了全栈开发必备的10款 Sublime T ...
随机推荐
- mongodb常用数据库指令
通过客户端的命令进入到mongodb服务中 mongo命令进入客户端 show dbs 查看数据库 show tables/show collections 查看集合(查看当前库里面的表) db 查 ...
- 简单实现Viper配置管理
本文由 ChatMoney团队出品 简介 前面实现的一个简易suno-api.是使用cookie来获取suno-token发起请求的.当时并没有通过配置的方式来获取cookie,而是直接在代码中写死了 ...
- NCNN的内存显存分配器ncnn::Allocator & ncnn::VkAllocator翻译及其差异对比的学习笔记(nihui亲审过滴)
NCNN的内存分配器 ncnn::Allocator 通用内存分配器 ncnn::PoolAllocator 内存池分配器 可以设置池大小,减少分配内存和析构内存次数,空间换时间 ncnn:: ...
- 解密Prompt系列31. LLM Agent之从经验中不断学习的智能体
Agent智能体的工作流可以简单分成两种:一种是固定的静态工作流,一种是智能体自主决策的动态工作流. 静态流程的Agent举几个例子,例如新闻热点追踪推送Agent,每日新论文摘要总结Agent,它们 ...
- Spring源码——详细流程图(超详细)
Spring源码流程图
- 如何拥抱AI
从去年年初开始,AI技术真正走入了我们的日常生活.从OpenAI到如今字节跳动的coze,我们通过AI大模型可以做很多事情,工具和平台众多,如何选择和使用有必要总结一下. 编程和debug方面 尽管g ...
- 为什么不推荐使用Linq?
相信很多.NETer看了标题,都会忍不住好奇,点进来看看,并且顺便准备要喷作者! 这里,首先要申明一下,作者本人也非常喜欢Linq,也在各个项目中常用Linq. 我爱Linq,Linq优雅万岁!!!( ...
- 基于Mock.js,使用C#生成模拟数据
获取某前端框架, 使用 Mock.js 生成模拟数据, 想要对api进行改造,并且保留原始数据,需要使用C# 重写后端api 的数据 模拟的内容: Random.guid() uuid: '@uuid ...
- NXP i.MX 8M Plus工业核心板规格书(四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)
1 核心板简介 创龙科技SOM-TLIMX8MP是一款基于NXP i.MX 8M Plus的四核ARM Cortex-A53 + 单核ARM Cortex-M7异构多核处理器设计的高端工业核心板, ...
- .NET 6 Entity Framework Core Db First(2) 增删改查
基础代码 在Program.cs注入DemoContext 新建HomeController,继承ControllerBase 添加Controller特性,[ApiController] [Rout ...