使用 Wrapper 自定义SQL
MyBatis-Plus官网
前言
MyBatis-Plus支持使用 Wrapper 自定义SQL, 但是官方文档描述简陋, 本文将结合实例做一个扩展补充
自定义SQL一般用于解决多表联合查询问题, 与使用视图查询, 使用动态SQL查询相比各有优劣, 可根据实际需要做选择
用XML实现自定义SQL
实例
service
User user = UserUtil.getUser();
QueryWrapper<User> ew = Wrappers.<User>query().eq("USER.CLIENT", user.getClient());
List<User> result = baseMapper.getUser(user, ew);
Mapper.java
List<User> getTransferOrderPostList(User user, @Param(Constants.WRAPPER)Wrapper<User> ew);
Mapper.xml
SELECT *
FROM `USER` `USER`LEFT JOIN `USER_DATA` `USER_DATA` ON `USER`.`ID` = `USER_DATA`.`USER_ID`
WHERE `USER`.is_delete = '0'AND ${ew.SqlSegment}
或者
SELECT *
FROM `USER` `USER`LEFT JOIN `USER_DATA` `USER_DATA` ON `USER`.`ID` = `USER_DATA`.`USER_ID`
${ew.customSqlSegment} AND `USER`.is_delete = '0'
注意事项
- mybatis-plus版本最低为 3.0.7(这个一般没问题)
- 传递条件的参数名要么叫ew, 或者加上注解@Param(Constants.WRAPPER)
- 如果是多表关联查询, 设置条件时应使用"表明.字段名", 例如:“USER.CLIENT”
- 在XML中写SQL时, Wrapper有多种方法, 其中方法SqlSegment只包含条件语句, 不包含任何关键词. 方法customSqlSegment包含WHERE+条件语句, 必须用于第一个条件. 详见实例
使用 Wrapper 自定义SQL相关推荐
- Mybatis Plus——以XML方式使用 Wrapper 自定义SQL时IDEA错误[**expected, got ‘${‘]解决方案
问题描述 '(', ',', CROSS, FOR, GROUP, HAVING, INNER, INTO, JOIN, LEFT, LIMIT, LOCK, NATURAL, ORDER, PROC ...
- MybatisPlus自定义 Sql 实现多表查询
目录 概述 编写代码 案例流程说明 控制层 服务层 数据访问层 自定义 SQL 测试 MybatiPlus文档 概述 MyBatis-Plus (opens new window)(简称 MP)是一个 ...
- mybatis plus按时间段查询_MybatisPlus自定义Sql实现多表查询的示例
前言 前段时间看同事的代码,发现他用Layui+MybatisPlus做分页查询做得很规整,认真看了下代码发现这种方式不仅适用于与Layui做分页查询,在任何时候需要多表联查的时候都可以用到. 以下以 ...
- 自定义报错返回_MybatisPlus基础篇学习笔记(五)------自定义sql及分页查询
本章目录 自定义sql 分页查询 1. 自定义sql 在dao文件中编写自定义接口,并在方法上使用注解形式注入SQL,如图所示: 第一种: 第二种 ① application.yml加入下面配置 my ...
- mybatis-plus自定义sql报错 ew.customSqlSegment
mybatis-plus自定义sql报错: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibat ...
- MyBatis-Plus 之自定义sql
推荐:MyBatis Plus汇总 MyBatis-Plus 之自定义sql 首先创建一个数据库表,如下图所示: 然后创建一个Spring Boot项目,pom.xml和配置如下: <?xml ...
- 关于Mybatis-plus多表联查自定义sql分页查询
问题描述: 使用mybatis-plus进行开发过程中,单表得增删改查等都可以利用封装好的方法,而一些场景设计多表联合查询,且需要自定义字段的,就需要进行自定义sql 使用方法: 1.service中 ...
- Mybaits自定义SQL
最近有个同事要包装一个可以执行sql语句的功能用的是mybatis 最开始他想到的方案是拿到数据库连接再执行sql语句. 后来出了某些错误来问我,为了寻求比较快的解决方法于是我就试试了下下面的方法. ...
- 工作流实战_27_flowable 自定义sql查询
项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 业务场景:在实际开发中,由于我们需要一些flowable的个性化查询,而且他们提供的ap ...
最新文章
- jQuery选择器和选取方法 http://www.cnblogs.com/MaxIE/p/4078869.html
- 【转】我们到底为了什么钻研技术?
- 控制台服务编写 Linux,一步步搭建ubuntu server console(控制台,字符模式)开发环境...
- bat 自动输入密码_三轴自动焊接,三轴搬运机械手示教系统简易说明,分秒学会...
- php中的break语句格式,PHP中break语句的应用
- Java Calendar 基本用法
- Delphi2CS破解 Delphi 转换C#
- 运输层课后第61题解读
- JS判断当前DOM树是否加载完毕
- 分享一个最终幻想勇气启示录的脚本,能自动刷图打觉醒材料
- python绘图工具reportlab介绍
- 拉杆音响电池升压芯片4.2V转12V2.5A大功率升压芯片
- Django菜鸟教程
- 寻找春天nbsp;九宫格日记-2011.09.20
- win7局域网计算机无法访问,win7局域网不能访问怎么办_win7系统电脑无法访问局域网怎么办-win7之家...
- win10操作系统如何整理桌面
- ubuntu14.04下deb文件安装mysql数据库
- 面试过程中应注意的问题与禁忌
- 触发器一(触发器简介)
- ChessBoard棋盘覆盖问题
热门文章
- Error: Index .kibana belongs to a version of Kibana that cannot be automatically migrated. Reset it
- Gin Web 网络框架
- 【高危安全通告】微软8月多个漏洞修复
- xlsxwriter进度条php,PHP导出Excel数据导出,前端进度条实现方式
- 怎么让抖音快速涨粉之抖音数据分析
- linux软件管理及软件仓库
- 怎样用office Word2003打开docx格式文档???
- 苹果电容笔和apple pencil区别是什么?值得入手的电容笔品牌排行榜
- ggplot绘制箱线图
- 计算机的文档库在哪哪里,电脑的word文档在哪里