广告位联系
返回顶部
分享到

mybatis-plus之实现in嵌套sql的教程

java 来源:互联网 作者:佚名 发布时间:2024-02-08 21:51:49 人浏览
摘要

mybatis-plus实现in嵌套sql 今天使用jeegboot看源码时发现用户权限部分的代码 条件查询的inSql方法的用法: 即sql中的 in (select column from table where 条件) 用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

mybatis-plus实现in嵌套sql

今天使用jeegboot看源码时发现用户权限部分的代码

条件查询的inSql方法的用法:

即sql中的 in (select column from table where 条件) 用法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

/**

* 根据部门 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的用法

示例:

1

2

3

4

5

6

7

8

@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后开始的最后一个符号,即)

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计