Mybatis处理集合、数组参数使用in查询等语句的两种方法(精华)

阅读: 评论:0

Mybatis处理集合、数组参数使用in查询等语句的两种方法(精华)

Mybatis处理集合、数组参数使用in查询等语句的两种方法(精华)

文章目录

    • 需求说明
    • 方式1:遍历数组
    • 方式2:拼接字符串参数
    • 注意点
    • 参考

需求说明

如果想在mybatis中使用in语句,就必须传入 in(1,2,3) 类似的参数。实现的原理就是利用mybatsi动态拼接的语法。实现方式有两种

  1. 遍历数组
  2. 拼接字符串

方式1:遍历数组

WHERE<if test="id!=0 and results != null ">result in<foreach collection="results" item="item" index="index"open="(" close=")" separator=",">${item}</foreach>and</if>

这里results 是数组类型[1,2,3,4],通过foreach,在前后拼接了(),分隔符采用逗号。最终解析结果是

WHERE result in (1,3,4,5)
使用 的 原 因 是 , 的原因是, 的原因是,原样输出。

方式2:拼接字符串参数

WHERE<if test="id!=0 and results != null ">result in    (${resultstr})</if>

这里resultstr是一个字符串:“1,2,3”,拼接后

WHERE result in (1,2,3)

注意点

拼接字符串的方式仅适用于 数值类型的遍历。否则无法无法拼接成 in (‘1’,‘2’,‘3’)。
无论哪种方式都仅仅是利用mybatis语法实现拼接sql。最终sql语句正确才能执行成功。需要多次打印sql语句不断调整。

参考


本文发布于:2024-01-28 23:56:42,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645740511227.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:两种   数组   语句   参数   精华
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23