mybatis-plus之如何实现in嵌套sql
作者:代号:猿a 时间:2023-02-11 14:57:57
mybatis-plus实现in嵌套sql
今天使用jeegboot看源码时发现用户权限部分的代码
条件查询的inSql方法的用法:
即sql中的 in (select column from table where 条件) 用法
/**
* 根据部门 Id 和 QueryWrapper 查询
*
* @param page
* @param departId
* @param queryWrapper
* @return
*/
@Override
public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) {
LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda();
lambdaQueryWrapper.eq(SysUser::getDelFlag, "0");
lambdaQueryWrapper.inSql(SysUser::getId, "SELECT user_id FROM sys_user_depart WHERE dep_id = '" + departId + "'");
return userMapper.selectPage(page, lambdaQueryWrapper);
}
mybatis-plus sql中in的用法
示例:
@Select("<script>" +
"SELECT * FROM node mn " +
"WHERE n.state IN " +
"<foreach item = 'state' collection = 'states' index = 'index' open = '(' separator = ',' close = ')'>" +
"#{state}" +
"</foreach>" +
"</script>")
List<Node> queryIdAndPlanDay(List states);
SQL语句需要使用<script></script>包起来,接着使用foreach进行循环,再将循环后得到的值放入sql中就ok了
item
:别名,就是遍历集合后用于接收数据的参数名,可自由更改collection
:集合名字,是你传入的集合参数名字,必须与参数名字相同open
:sql开始填充符号,相当于state in ()中的in后开始的第一个符号,即(separator
:分隔符,是遍历集合后组成参数的分隔符close
:sql结尾填充符号,是state in ()中的in后开始的最后一个符号,即)
来源:https://blog.csdn.net/weixin_44684303/article/details/112709807
标签:mybatis-plus,in,嵌套,sql
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
一个简单的Spring容器初始化流程详解
2023-11-13 02:10:55
![](https://img.aspxhome.com/file/2023/0/63850_0s.png)
java httpclient设置超时时间和代理的方法
2023-05-10 13:05:24
Java SpringBoot高级用法详解
2021-07-03 18:27:09
![](https://img.aspxhome.com/file/2023/8/62998_0s.png)
Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程
2023-03-21 21:22:27
![](https://img.aspxhome.com/file/2023/6/61816_0s.png)
SpringBoot2.0集成MQTT消息推送功能实现
2022-02-28 01:55:04
![](https://img.aspxhome.com/file/2023/3/94233_0s.png)
谈谈HttpClient使用详解
2022-11-03 08:19:02
Flutter 使用fluro的转场动画进行页面切换
2023-06-17 11:49:26
![](https://img.aspxhome.com/file/2023/4/94964_0s.gif)
Java解析XML格式数据的方法详解
2022-03-25 09:28:25
关于SpringCloudStream配置问题
2023-08-08 20:12:00
![](https://img.aspxhome.com/file/2023/0/58050_0s.jpg)
C#中定时任务被阻塞问题的解决方法
2023-10-27 00:56:02
![](https://img.aspxhome.com/file/2023/7/92877_0s.png)
spring hibernate实现动态替换表名(分表)的方法
2022-06-10 14:20:03
Java二维数组与动态数组ArrayList类详解
2023-07-31 19:53:56
详解Spring MVC CORS 跨域
2023-11-25 08:04:37
HashMap原理及put方法与get方法的调用过程
2023-10-06 03:53:02
![](https://img.aspxhome.com/file/2023/1/58601_0s.png)
java内存优化的方法总结
2022-12-01 22:25:20
C# List集合中获取重复值及集合运算详解
2022-06-13 17:15:45
FeignClient实现接口调用方式(不同参数形式)
2023-03-06 08:41:39
![](https://img.aspxhome.com/file/2023/4/69094_0s.png)
Android使用Intent隐式实现页面跳转
2022-09-17 05:33:48
![](https://img.aspxhome.com/file/2023/5/93285_0s.png)
Android编程简易实现XML解析的方法详解
2023-12-25 18:51:59
![](https://img.aspxhome.com/file/2023/3/88663_0s.jpg)
C#向word文档插入新段落及隐藏段落的方法
2022-04-11 16:29:10
![](https://img.aspxhome.com/file/2023/9/83269_0s.jpg)