我是靠谱客的博主 孤独毛衣,最近开发中收集的这篇文章主要介绍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语句不断调整。

参考

https://blog.csdn.net/sinat_32034679/article/details/78716151
https://blog.csdn.net/cxws110/article/details/88826257

最后

以上就是孤独毛衣为你收集整理的Mybatis处理集合、数组参数使用in查询等语句的两种方法(精华)的全部内容,希望文章能够帮你解决Mybatis处理集合、数组参数使用in查询等语句的两种方法(精华)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部