mybatis使用foreach实现sql的in查询
2019独角兽企业重金招聘Python工程师标准>>>
dao层 ITemplateDao.java:
List<BrokerTemplate> GetTemplateListByIds(@Param(value = "ids") List<Long> ids);
resource:Template.xml
<select id="GetTemplateListByIds" resultMap="BrokerTemplate">SELECT tb1.broker_template_id,tb1.broker_id,tb1.type,tb1.content,tb1.is_default,tb1.create_time,tb1.update_time,tb1.is_deleted,tb1.delete_time,tb1.name,tb1.`is_locked`FROM broker_template tb1WHERE broker_template_id IN<foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">#{id}</foreach></select>
<foreach>中 属性如下
collection :是遍历的数据集合,这里是我的list<Long> ids。
item : 每个子项命名。需要跟foreach内使用时一致,这里是#{id}
index:索引位置
open :在遍历执行之前先附加的字符串。
close : 在遍历执行完成后附加的字符串。
separator:遍历每个item子项后附加的字符串(即子项之间自定义的间隔符号)
栗子: open="(" close=")" separator="," 拼出来就是 ( item1,item2, item3 )
转载于:https://my.oschina.net/CrazyBoy1024/blog/1619695
mybatis使用foreach实现sql的in查询相关推荐
- mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入
使用 mybatis 平时都是用遍历集合 in ( ) ....,其实还可以多模糊查询和批量操作等其他操作,要明白 foreach 元素的属性主要意义,灵活使用,举例如下. 1.根据多个品牌名字分类, ...
- Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...
- Mybatis的动态sql语句的查询
if <select id="findActiveBlogWithTitleLike"resultType="Blog">SELECT * FROM ...
- mybatis动态SQL多条件查询1 - if 标签
Mybatis框架的动态SQL技术是一种根据特定条件动态拼接SQL语句的过程.它的存在是为了解决拼接SQL语句字符串的痛点问题.创建新的Mapper接口和新的mapper映射文件. 目录 1.创建Dy ...
- Mybatis中sql拼接in查询
MyBatis数据库sql语句中in一个动态数组 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection ...
- 六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
文章目录 六.MyBatis特殊的SQL 6.1 模糊查询 6.2 动态设置表名 6.3 校验名称唯一性 本人其他相关文章链接 六.MyBatis特殊的SQL 6.1 模糊查询 方式1:select ...
- Mybatis入门之动态sql
Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...
- MyBatis 源码分析 - SQL 的执行过程
本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析.运 ...
- 源码分析 Mybatis 的 foreach 为什么会出现性能问题
背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一条查询 SQ ...
最新文章
- Java的左移和右移的含义!
- sqlite3 解决并发读写冲突的问题
- python opencv 人脸比对_Python3.5+openCv在Windows下利用LBP算法进行人脸识别并匹配
- LeetCode 2079. 给植物浇水(前缀和)
- Linux bash卸载软件,Ubuntu卸载软件的4种方法
- linux找数组规矩,linux shell 数组建立及使用技巧(示例代码)
- 苹果计划在明年推出的高端iPhone机型上应用挖孔屏
- Node VS C#
- 人工智能芯片的前世与今生
- hdu 1285 确定比赛名次
- ExecutorService中submit和execute、Runnable和Callable
- android面试笔试题详解
- 数字延时网络混响算法研究(FDN)
- 开源远程桌面软件_RustDesk_(可自建远程桌面服务器)
- vm8.0下安装mac
- DirectX12(D3D12)基础教程(八)——多显卡渲染基础、共享纹理、多GPU同步
- kubernetes 使用kubectl port-forward 访问应用
- PDF可以被压缩吗,是如何实现的?
- CreateWindowEx
- linux命令行怎么播放,在linux命令行里能听歌看电影吗
热门文章
- 转:TestLink1.9.3测试用例:Excel转换XML工具二实现代码
- IFE JavaScript Task0002-1 小练习1:处理用户输入
- QT中树控件QTreeView开发实例
- 识别字符串中的表达式
- bvp解算器是什么_边值问题(BVP)的Matlab解法
- python数据整理代码_熬夜整理的资料:分享Python数据可视化图表代码和案例给大家...
- 【ijkplayer】编译 Android 版本的 ijkplayer ⑤ ( 执行 init-android-libyuv.sh | 执行 init-android-soundtouch.sh )
- 【错误记录】Android Gradle 配置报错 ( gradle.properties 配置到 BuildConfig 中需要注意类型转换 | 位置: 类 BuildConfig )
- 【Android 逆向】selinux 进程保护 ( selinux 进程保护 | 宽容模式 Permissive | 强制模式 Enforcing )
- 【Java 网络编程】客户端 Socket 创建