当前位置: 首页 > news >正文

Mybatis-plus手写SQL如何使用条件构造器和分页

Mybatis-plus手写SQL如何使用条件构造器和分页插件

前言:在使用mybatis-plus过程中,使用条件构造器和分页插件非常效率的提升开发速度,但有些业务需要使用连表查询,此时还想使用条件构造器和使用分页时应该如何操作呢?

Mapper接口层

public interface BookOrderMapper extends BaseMapperPlus<BookOrder, BookOrderVo> {List<OrderApp> getOrderAppList(@Param("orderState") String orderState);Page<OrderApp> getOrderAppPage(Page<OrderApp> page, @Param(Constants.WRAPPER) Wrapper<OrderApp> wrapper);
}

xml层

<select id="getOrderAppPage" resultMap="orderApp">SELECT *FROMbook_order t2LEFT JOIN book_order_detail t1 ON t1.order_id = t2.order_id and t1.del_flag = 0LEFT JOIN t_sku t3 ON t1.sku_id = t3.idLEFT JOIN books t4 ON t4.book_id = t3.book_id${ew.customSqlSegment}</select>

调用

        // 查询构造器,如果是连表查询的话建议使用QueryWrapper,这样可以手动指定条件列名 例如:t2.xxxboolean b = !StringUtils.equals(orderState, "0");QueryWrapper<OrderApp> queryWrapper = Wrappers.query(OrderApp.class);queryWrapper.eq("t2.user_id",userId);queryWrapper.eq(b,"t2.order_state",orderState);queryWrapper.eq("t2.del_flag","0");queryWrapper.orderByDesc("t2.create_time");// 调用sqlPage<OrderApp> orderAppPage = bookOrderMapper.getOrderAppPage(new Page<>(page, pageSize), queryWrapper);

分页插件:

在返回结果使用Page< T >即可

条件构造器:

  1. mapper参数中添加 @Param(Constants.WRAPPER) Wrapper< T > wrapper (实参传递QuerWrapper或LamdaQuerWrapper都可以)
  2. 在sql的最后方添加 sql片段: ${ew.customSqlSegment} (带where关键字) 或 ${ew.sqlSegment}(不带where关键字)

相关文章:

Mybatis-plus手写SQL如何使用条件构造器和分页

Mybatis-plus手写SQL如何使用条件构造器和分页插件 前言&#xff1a;在使用mybatis-plus过程中&#xff0c;使用条件构造器和分页插件非常效率的提升开发速度&#xff0c;但有些业务需要使用连表查询&#xff0c;此时还想使用条件构造器和使用分页时应该如何操作呢&#xff1f…...

Vue的table组件合并行方法

/*** param {Array} data - 原始数据集合* param {string} addParamer - 这个是自定义的参数&#xff0c;向每个对象中添加一个参数 按照这个参数的个数进行合并* param {} args - 剩余参数 这个是合并规则 &#xff0c;比如按照时间合并 那就传入对象中的时间参数date&#xf…...

5. C语言字符串处理常用方法

在 C 语言中,字符串是以字符数组的形式表示的,以空字符 \0 结尾。C 语言提供了一系列的字符串处理函数,可以用于字符串的操作、查找、比较等。以下是一些常用的 C 语言字符串处理函数: 1. 字符串定义与初始化 #include <stdio.h> #include <string.h>int mai…...

ts--(入门到离职系列)

TS 与 JS 的区别 TypeScript[4] 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集&#xff0c;而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。-- 官方文档 说人话就是 TS 拓展了 JS 的一些功能&#xff0c;解决了 JS 的一些缺点&#…...

java后端常见问题

java面向对象的特征&#xff0c;如何应用 面向对象编程是利用类和对象的编程思想万物皆成类&#xff0c;对象是类的具体体现&#xff0c;面向对象的三大基础特性&#xff0c;继承封装多态。、封装&#xff1a;封装隐藏了类的具体内部实现机制&#xff0c;可以在不影响使用的情…...

windows系统玩游戏找不到d3dx9_43.dll缺失,无法启动此程序的解决方法

今日&#xff0c;我们要深入讨论d3dx9_43.dll文件的重要性及其缺失问题。最近&#xff0c;我也遇到了这个文件丢失的困扰&#xff0c;因此想借此机会与大家分享如何解决d3dx9_43.dll缺失的问题。 一.电脑d3dx9_43.dll丢失会提示什么&#xff1f; 关于电脑提示d3dx9_43.dll丢失…...

MATLAB中mapminmax函数用法

目录 语法 说明 示例 使用 mapminmax 函数格式化矩阵 mapminmax函数的功能是通过将行最小值和最大值映射到 [-1 1] 来处理矩阵。 语法 [Y,PS] mapminmax(X,YMIN,YMAX) [Y,PS] mapminmax(X,FP) Y mapminmax(apply,X,PS) X mapminmax(reverse,Y,PS) dx_dy mapminmax(d…...

数据结构导航 -- 38篇

数据结构实现代码 线性表 顺序表代码-C-CSDN博客 单链表代码-C-CSDN博客 双链表代码-C-CSDN博客 有序表概述-CSDN博客 栈 栈代码数组实现-C-CSDN博客 栈代码链表实现&#xff08;链栈&#xff09;-C-CSDN博客 队列 队列与环形队列顺序存储代码数组实现-C-CSDN博客 队…...

前端性能优化 | CDN缓存

前言 CDN&#xff08;Content Delivery Network&#xff09;是一种分布式的网络架构&#xff0c;通过在全球各地部署节点服务器来快速传输和分发网络内容。CDN的主要目标是提供快速、可靠的内容传输&#xff0c;以提升用户体验。 本文主要从以下方面讲解CDN 什么是CDNCDN的作…...

【C#语言入门】17. 事件详解(上)

【C#语言入门】17. 事件详解&#xff08;上&#xff09; 一、初步了解事件 定义&#xff1a;单词Event&#xff0c;译为“事件” 通顺的解释就是**“能够发生的什么事情”**&#xff0c;例如&#xff0c;“苹果”不能发生&#xff0c;但是“公司上市”这件事能发生。在C#中事…...

Charles无法打开导出的har文件解决方法

打开出错&#xff1a;MalformedJson: Use JsonReader.setLenient(true) to accept malformed JSON at line1 column 1368184 path $.log.entries[41].request.postData.text 一、解决办法 用json.dumps格式化一下里面内容&#xff0c;保存为新文件再打开 import jsondef modify…...

FFmpeg--FlvPaser源码:解析.flv输出.h264

文章目录 程序功能&#xff1a;函数调用流程&#xff1a;部分FlvParse.h部分FlvParse.cpp 程序功能&#xff1a; 解析flv文件&#xff0c;重写一个h264文件&#xff0c;如输入movie.flv , 输出movie.h264 (只有视频&#xff0c;没有声音) 函数调用流程&#xff1a; 1 Proce…...

【项目笔记】java微服务:黑马头条(day02)

文章目录 app端文章查看&#xff0c;静态化freemarker,分布式文件系统minIO1)文章列表加载1.1)需求分析1.2)表结构分析1.3)导入文章数据库1.3.1)导入数据库1.3.2)导入对应的实体类 1.4)实现思路1.5)接口定义1.6)功能实现1.6.1)&#xff1a;导入heima-leadnews-article微服务&am…...

每天五分钟计算机视觉:图像数据不足带来的问题和解决办法

本文重点 在当今的数字时代,图像数据的应用已经渗透到各个领域,包括但不限于计算机视觉、机器学习、自动驾驶、医疗诊断等。然而,当图像数据不足时,会引发一系列问题,对相关应用产生负面影响。 尤其是计算机视觉领域,图像数据尤为珍贵和稀缺,如果计算机视觉的任务中,如…...

手机App防沉迷系统C卷(JavaPythonC++Node.jsC语言)

智能手机方便了我们生活的同时,也侵占了我们不少的时间。"手机App防沉迷系统"能够让我们每天合理的规划手机App使用时间,在正确的时间做正确的事。 它的大概原理是这样的: 1、在一天24小时内,可注册每个App的允许使用时段; 2、一个时段只能使用一个App,举例说明…...

【WEEK2】学习目标及总结【SpringMVC】【中文版】

学习目标&#xff1a; 三周完成SpringMVC入门——第二周 学习内容&#xff1a; 参考视频教程【狂神说Java】SpringMVC最新教程IDEA版通俗易懂使用注释完成MVC程序Controller控制器RestFul风格结果跳转方式数据处理 学习时间及产出&#xff1a; 第二周 MON~FRI 2024.3.4 【W…...

Git版本工具学习

目录 版本控制git配置工作区域文件状态git对象模型基础命令.gitignore忽略文件IDEA集成Git 版本控制 本地版本控制&#xff1a;在本地记录每一次版本更新。 集中版本控制&#xff1a;版本数据都保存在单一服务器&#xff0c;不联网就看不到版本信息。SVN 分布式版本控制&…...

baidu, google和chatgpt -- 翻译对比

原文 That ChatGPT can automatically generate something that reads even superficially like human-written text is remarkable, and unexpected. But how does it do it? And why does it work? My purpose here is to give a rough outline of what’s going on inside…...

高分辨率全球海洋温度和盐度再分析数据Global Ocean Physics Reanalysis(0.083°),并利用matlab读取绘图

1.引言 在研究全球海平面变化的问题中&#xff0c;卫星测高获得总的海平面变化&#xff0c;而海平面变化包含质量变化和比容变化。因此测高数据和海洋物理分析数据对于海平面研究至关重要。 测高数据下载网址&#xff1a; Global Ocean Gridded L 4 Sea Surface Heights And …...

微信小程序修改placeholder样式

微信小程序有既定的修改placeholder的标签 一、placeholder-style直接修改样式 <input type"text" placeholder"请输入" placeholder-style"color:#e2e2e2;"></input>二、placeholder-class设置样式类 <input type"text&…...

几何精度因子(GDOP)在GNSS定位中的关键作用与优化策略

1. 什么是几何精度因子&#xff08;GDOP&#xff09;&#xff1f; 当你用手机导航时&#xff0c;有没有遇到过定位漂移的情况&#xff1f;明明站在十字路口&#xff0c;地图上的小蓝点却在周围乱跳。这种现象很大程度上与GDOP值有关。简单来说&#xff0c;GDOP就像是一个"…...

避坑指南:ViewPager嵌套Fragment引发内存泄漏的完整解决方案(Android 12适配版)

Android内存泄漏深度排查&#xff1a;从ViewPager嵌套陷阱到Heap Dump实战解析 当你的应用在连续操作后开始卡顿&#xff0c;内存占用曲线只升不降时&#xff0c;很可能正遭遇内存泄漏这个"沉默的性能杀手"。尤其在ViewPager与Fragment的嵌套场景中&#xff0c;错误…...

C++ 智能指针在 STL 容器中的应用

C智能指针在STL容器中的应用 在现代C开发中&#xff0c;智能指针和STL容器是两大核心工具。智能指针通过自动管理内存&#xff0c;显著降低了资源泄漏的风险&#xff1b;而STL容器则提供了高效的数据存储和操作方式。将两者结合使用&#xff0c;既能确保内存安全&#xff0c;又…...

Godot资源解包利器:零基础掌握游戏资产提取技术

Godot资源解包利器&#xff1a;零基础掌握游戏资产提取技术 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker godot-unpacker是一款专为Godot引擎设计的资源解包&#xff08;Resource Extraction&…...

终极揭秘:Bloaty的RangeMap数据结构如何实现精准二进制尺寸分析

终极揭秘&#xff1a;Bloaty的RangeMap数据结构如何实现精准二进制尺寸分析 【免费下载链接】bloaty Bloaty: a size profiler for binaries 项目地址: https://gitcode.com/gh_mirrors/bl/bloaty Bloaty是一款强大的二进制尺寸分析工具&#xff0c;能够帮助开发者深入了…...

AudioLDM代码架构详解:从CLAP到HiFi-GAN的完整技术栈

AudioLDM代码架构详解&#xff1a;从CLAP到HiFi-GAN的完整技术栈 【免费下载链接】AudioLDM AudioLDM: Generate speech, sound effects, music and beyond, with text. 项目地址: https://gitcode.com/gh_mirrors/au/AudioLDM AudioLDM是一个基于潜在扩散模型的文本到音…...

终端设备可靠性检测报告:读懂设备耐用密码

日常使用手机、智能手表、家用路由器等终端设备时&#xff0c;我们总希望它“扛造耐用”&#xff0c;不轻易出故障。这份终端设备可靠性检测报告&#xff0c;就用通俗的话拆解设备耐用的核心密码&#xff0c;让大家明白&#xff0c;一台靠谱的设备&#xff0c;背后都经过了哪些…...

品牌想被AI推荐,必须满足这3个条件

我们团队去年给一家智能家居客户做GEO交付&#xff0c;第一个月内容铺了三千篇&#xff0c;数据后台一打开&#xff0c;引用率不到1.7%。客户电话直接打过来问&#xff1a;“你们是不是把同一篇文章&#xff0c;用AI换了个说法发了三千遍&#xff1f;”这就是很多营销服务公司踩…...

Matplotlib横坐标刻度从原点开始的3种实用方法

1. 为什么横坐标刻度从原点开始很重要 做数据可视化时&#xff0c;我们经常需要展示数据从零开始的变化趋势。比如展示销售额增长、用户数量变化或者实验数据对比时&#xff0c;如果横坐标不从零开始&#xff0c;很容易造成视觉上的误导。我见过不少新手做的图表&#xff0c;因…...

DolphinScheduler任务状态异常排查:从僵尸任务到数据库修复全流程

DolphinScheduler任务状态异常排查&#xff1a;从僵尸任务到数据库修复全流程 引言 在分布式任务调度系统中&#xff0c;任务状态异常是运维人员经常遇到的棘手问题。DolphinScheduler作为一款开源的分布式可视化工作流任务调度系统&#xff0c;其强大的功能背后也隐藏着一些状…...