Mybatis使用@Select注解sql中使用in问题
作者:wuzi_uzi 发布时间:2023-01-06 20:52:48
标签:Mybatis,@Select,sql,in
Mybatis使用@Select注解sql中使用in
mapper
@Select("SELECT u.* , ur.role_id , r.role_name from sys_user_role ur , sys_role r , sys_user u ,sys_user_depart ud " +
"where ur.role_id = r.id and ur.user_id = u.id and u.id = ud.user_id " +
"and ud.create_user_id in (${createUserId})")
public Page<SysRoleDeptVO> getUserByCreateUserIds(Page page, @Param("createUserId") String createUserId);
service
@Override
public Page<SysRoleDeptVO> getByUserIds(Page<SysRoleDeptVO> page, List<String> userIds) {
/** 如果当前部门下没用户的话,就传个 "" 过去 由于 mybatis 解析后空字符串
* 后是什么都没有, 这里用 in () 如果这样,就会异常 ,所以当用户为空的话,
* 传 "''" 这样解析后 变成了 in ('')
* */
String userids = "''" ;
if(userIds != null && userIds.size() != 0){
StringBuilder stringBuilder = new StringBuilder("");
for (int i = 0; i < userIds.size(); i++) {
stringBuilder.append("'");
stringBuilder.append(userIds.get(i));
stringBuilder.append("'");
stringBuilder.append(",");
}
userids = stringBuilder.substring(0, stringBuilder.length() - 1);
}
return userMapper.getByUserIds(page,userids);
mapper防止转义字符
<![CDATA[ ]]>
Mybatis在@Select写IN SQL
简单介绍在 MyBatis 的注解方式中,写包含 in 语法的 SQL
直接了断看下面的代码,SQL 是获取某几个 ID 的文章
@Select("<script>" +
"select * from article where id in " +
"<foreach item='item' index='index' collection='articleIds' open='(' separator=', ' close=')'>" +
"#{item}" +
"</foreach>" +
"</script>")
List<Article> getArticlesByIds(@Param("articleIds") List<Long> articleIds);
来源:https://blog.csdn.net/qq_37739437/article/details/117595157


猜你喜欢
- 新建一个表:create table abc(id int IDENTITY(1,1) NOT NULL,name nvarchar(100
- 1) async / await使用 async / await 模式,可以在执行代码块操作的时候不会阻塞 UI 或者当前的线程。即使该操作
- 在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止网络攻击。常见的限流方式
- 本总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代码,具体内容如下①
- 本文实例讲述了Android开发实现Launcher3应用列表修改透明背景的方法。分享给大家供大家参考,具体如下:Launcher时开机完成
- 一、TimerTimer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与han
- 这篇文章主要介绍了Spring Cloud Zuul添加过滤器过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 假设我们有一个类:Productpublic class Product{ public string
- 带参数的try(){}语法含义带资源的try语句(try-with-resource)最简形式为try(Resource res = xxx
- 任务描述:在一个无向图中,获取起始节点到所有其他节点的最短路径描述Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节
- 本文基于shardingsphere-jdbc-core-spring-boot-starter 5.0.0,请注意不同版本的shardin
- web.xml文件配置创建好一个SpringMVC项目后,需要在需要在WB-INF文件夹下配置web.xml文件<?xml versi
- 本文分析了Android实现换肤的两种思路。分享给大家供大家参考,具体如下:这里来了解换肤实现及不同方案的差异和使用场合。一、从功能上划分1
- 随机数的定义为:产生的所有数字毫无关系.在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号.在C#中获取随机数有三种方法:一.Ran
- 楔子近期公司程序被安全扫描出 远程主机允许明文身份验证 中风险漏洞,查了下修复方案,RabbitMQ官方提供了SSL连接方式,而且 Spri
- 开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教。1.Student
- 引入spring-cloud-starter-openfeign失败引入下面jar包总是报错jar包丢失<dependency>
- 项目背景我们开发过程中会碰到这样一类问题,就是数据层或三方接口返回的Bean对象需要转换重新装换一下我们需要的对象。我们通常的做法就是通过g
- 今天来记录一下,在项目中因为基本类型,所产生的bug包装类:8种基本类型的包装类应用场景:数据库建立实体映射多用包装类这两句话是重点:就是建
- 本文实例讲述了spring boot validation参数校验。分享给大家供大家参考,具体如下:对于任何一个应用而言在客户端做的数据有效