Mybatis使用@Select注解sql中使用in问题
更新时间:2023年05月26日 10:14:29 作者:wuzi_uzi
这篇文章主要介绍了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);总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java中SpringBoot的@Transactional原理
这篇文章主要介绍了Java中SpringBoot的@Transactional原理,面向元数据遍历已经成为越来越多开发者的偏好,因此原理从Springboot的EnableTransactionManagement注解说起,需要的朋友可以参考下2023-07-07
SpringBoot+SpringBatch+Quartz整合定时批量任务方式
这篇文章主要介绍了SpringBoot+SpringBatch+Quartz整合定时批量任务方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09
tdesign的文件上传功能实现(微信小程序+idea的springboot)
这篇文章主要介绍了tdesign的文件上传(微信小程序+idea的springboot)的相关知识,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2023-09-09
SpringBoot项目集成Flyway进行数据库版本控制的详细教程
这篇文章主要介绍了SpringBoot项目集成Flyway进行数据库版本控制,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07


最新评论