当前位置: 首页 > article >正文

Mybatis中遍历List内容进行动态SQL拼接

这个方法用于根据一组 dishIds (1,2,3,4)查询对应的另一张表的内容中的 setmeal_id。通过使用了 MyBatis 的 <foreach> 标签来遍历传入的集合,并将 dishIds (1,2,3,4)集合中的每个 dishId 插入到 SQL 查询的 IN 子句中来通过dishIds查询另一张表的主键setmeal_id

<select id="getSetmealIdsByDishIds" resultType="java.lang.Long">
    select setmeal_id from setmeal_dish where dish_id in
    <foreach collection="dishIds" item="dishId" separator="," open="(" close=")">
        #{dishId}
    </foreach>
</select>

<select> 标签:定义了 MyBatis 的查询映射,id="getSetmealIdsByDishIds" 是方法名,resultType="java.lang.Long" 表示返回类型为 Long

<foreach> 标签:用于遍历传入的 dishIds 集合,将其生成 SQL 的 IN 子句。

  collection="dishIds":指定传入的集合名称。

  item="dishId":表示集合中的每一项在循环时的变量名。

  separator=",":每个 dishId 之间用逗号分隔。

  open="(" close=")":表示生成的 SQL 中 IN 子句的开始和结束。

功能:

这个 SQL 查询会生成如下格式的 SQL 语句:

SELECT setmeal_id FROM setmeal_dish WHERE dish_id IN (1, 2, 3);

其中 (1, 2, 3) 是根据传入的 dishIds 动态生成的。


http://www.kler.cn/a/326213.html

相关文章:

  • Django5 2024全栈开发指南(二):Django项目配置详解
  • Ubuntu22.04基于ROS2-Humble安装moveit2教程(亲测)
  • android framework ams/wms常见系统日志(main\system\events\crash,protoLog使用)
  • HuggingFace:基于YOLOv8的人脸检测模型
  • shell 100例
  • QT仿QQ聊天项目,第三节,实现聊天界面
  • LeetCode 461. 汉明距离
  • 实战OpenCV之图像滤波
  • 记录一次排查sql server 服务调用异常的问题
  • 1.2.1 HuggingFists安装说明-Linux安装
  • Tableau|一入门
  • k8s基于nfs创建storageClass
  • C#名片识别接口集成方式、文字识别API
  • 电脑剪切的文件粘贴时丢失的高效恢复策略
  • 如何创建虚拟环境并实现目标检测及验证能否GPU加速
  • Visual Studio Code下载安装及汉化
  • 最后加推!高新CID这个项目为什么频频破圈爆火
  • HAproxy,nginx实现七层负载均衡
  • [c++高阶]模版进阶
  • Golang | Leetcode Golang题解之第440题字典序的第K小数字
  • RabbitMQ的高级特性-消息确认机制
  • http请求过程 part-2
  • 【C++前缀和 动态规划 博弈】1140. 石子游戏 II|2034
  • 【已解决】Koa 异步问题导致响应信息不能正确输出,始终为 Not Found
  • redis和mysql端口修改
  • Harmony next Native API 开发工程实践