mybatisplus之怎么实现in嵌套sql

发布时间:2023-03-15 17:41:50 作者:iii
来源:亿速云 阅读:123

这篇文章主要讲解了“mybatisplus之怎么实现in嵌套sql”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatisplus之怎么实现in嵌套sql”吧!

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了

感谢各位的阅读,以上就是“mybatisplus之怎么实现in嵌套sql”的内容了,经过本文的学习后,相信大家对mybatisplus之怎么实现in嵌套sql这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. MyBatisPlus如何实现自动更新、软删除、乐观锁操作
  2. Spring Boot+JWT+Shiro+MybatisPlus怎么实现Restful快速开发后端脚手架

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mybatisplus in sql

上一篇:Vue怎么使用pdf-lib实现为文件流添加水印并预览

下一篇:JS中call、apply和bind函数手写实现demo的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》