mybatis-plus 使用 sql 分页
#分页工具类
/**
* 分页参数处理
*/
public class PageUtil {
/**
* 分页返回数据封装
*
* @param page
* @return Map<String, Object>
* @author Hd
* @date 2021/12/18 12:47
*/
public static Map<String, Object> toPage(Page page) {
Map<String, Object> map = new LinkedHashMap<>(2);
map.put("pages", page.getPages());
map.put("current", page.getCurrent());
map.put("total", page.getTotal());
map.put("list", page.getRecords());
return map;
}
/**
* 分页参数转化
*
* @param orderItems
* @param sqlPrefix
* @return List<OrderItem>
*/
public static List<OrderItem> toOrderItem(List<OrderItem> orderItems, String sqlPrefix) {
//OrderItem(column=updated_time, asc=false)
return orderItems
.stream()
.map(item -> new OrderItem(sqlPrefix + "." + item.getColumn(), item.isAsc()))
.collect(Collectors.toList());
}
#代码Controller
public Result listPage(ProblemInfoQueryDto problemInfoQueryDto) {
return Result.success("查询成功", problemInfoService.listPage(problemInfoQueryDto));
}
#service
Map listPage(ProblemInfoQueryDto problemInfoQueryDto);
#serviceImpl
public Map<String, Object> listPage(ProblemInfoQueryDto problemInfoDto) {
IPage<ProblemInfoVo> page = new Page<>(problemInfoDto.getPage(), problemInfoDto.getSize());
QueryWrapper<ProblemInfo> wrap = new QueryWrapper<>();
wrap.orderByDesc("id");
return PageUtil.toPage(mapper.listPage(page, wrap));
}
#mapper
Page<ProblemInfoVo> listPage(IPage<ProblemInfoVo> page,@Param(Constants.WRAPPER) QueryWrapper<ProblemInfo> wrap);
#xml
SELECT
*
FROM
tb_problem_info ${ew.customSqlSegment}
mybatis-plus 使用 sql 分页的更多相关文章
- springboot使用mybatis拦截进行SQL分页
新建一个类MyPageInterceptor.java(注意在springboot中要添加注解@Component) package com.grand.p1upgrade.mapper.test; ...
- SpringBoot使用Mybatis注解开发教程-分页-动态sql
代码示例可以参考个人GitHub项目kingboy-springboot-data 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframe ...
- Mybatis拦截器实现分页
本文介绍使用Mybatis拦截器,实现分页:并且在dao层,直接返回自定义的分页对象. 最终dao层结果: public interface ModelMapper { Page<Model&g ...
- pageHelper多个sql分页
之前有个需求,在一个页面中需要有多个sql分页查询然后放到一个list中,展示,但是会出现一个bug,就是每次分页都会展示第一条查出的所有的数据: 第一页 第二页 因为是截的生产环境,第一条数据被处理 ...
- mybatis拦截器实现分页功能的示例讲解
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav ...
- 利用MyBatis的动态SQL特性抽象统一SQL查询接口
1. SQL查询的统一抽象 MyBatis制动动态SQL的构造,利用动态SQL和自定义的参数Bean抽象,可以将绝大部分SQL查询抽象为一个统一接口,查询参数使用一个自定义bean继承Map,使用映射 ...
- SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件
一.Mybatis框架 1.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获 ...
- Oracle使用MyBatis中RowBounds实现分页查询
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...
- MyBatis框架之SQL映射和动态SQL
使用MyBatis实现条件查询 1.SQL映射文件: MyBatis真正的强大之处就在于SQL映射语句,MyBatis专注于SQL,对于开发人员来说也是极大限度的进行SQL调优,以保证性能.下面是SQ ...
- Mybatis中动态SQL语句中的parameterType不同数据类型的用法
Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型, 此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...
随机推荐
- .NET为什么推荐它作为RabbitMQ消息队列的首选开发工具
支持.Net Core(2.0及以上)/.Net Framework(4.5及以上),可以部署在Docker, Windows, Linux, Mac. RabbitMQ作为一款主流的消息队列工具早已 ...
- YouCompleteMe用法总结
1.将.ycm_extra_conf.py拷贝到工程目录,然后打开,将自己的include目录添加进去
- 学习Java Day10
今天学习了数组的相关知识
- JZOJ 2020.02.25【NOIP提高组】模拟A 组
闲话 难度似乎比之前的简单了一些 但是难的题还是很难(我太菜了) 总结 针对三个题,先罗列正解所涉及的算法:字符哈希,组合数学,点分治 最后一个不会 组合数学?还好吧 字符哈希? 放在 \(T1\) ...
- [USACO06NOV] Round Numbers S
题目 \(\texttt{[USACO06NOV] Round Numbers S}\) 分析 数位 \(dp\) 入门题 一般我们需要当前位置 \(pos\),有无前导零 \(lead\),高位标记 ...
- JZOJ 4319. 【NOIP2015模拟11.5】Lucas的数列
题目 思路 暴力很好打,我们显然可以先把关于 \(k\) 的式子拆开 先二项式展开,然后把外面的 \(m\) 乘进去,把 \(p\) 的分母 \(m\) 消去 \(K = (\sum_{i=1}^m ...
- 如何获取win10用户最高权限
第五步,在(输入对象名称)方框中输入"System Managed Accounts Group",再点击"检查名称" 转载: 百度经验: https: ...
- Docker安装配置Oracle详细教程(以作持久化处理)
Docker安装Oracle 1,拉取Oracle镜像,拉取成功后查看 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11 ...
- 探索 C 语言的递归函数
<C Primer Plus>函数章节:递归函数.结合 Visual Studio 调试理解 C 语言的递归函数,下面是书上一模一样的代码,贴在这里: #include<stdio. ...
- 使用expect在实现跨机器拿日志
1.shell脚本 config_file_path=$1 #集群的ip port=$2 #获取集群服务端口中的日志 sjc=$3 #时间戳 user_name="sdbadmin" ...