mybatis in的4种写法

1.list

传参:

ids:["1","2","3"]

java用map接,会得到list类型。

xml

<if test="ids != null and ids.size>0'" > 
and col in 
<foreach collection="ids" item="item" open="(" separator="," close=")"> #{item} 
</foreach>
 </if>

2.java 转 array

传参 ids: "1,2,3"

String str = "1,2,3,4"; 
Map  map = new HashMap();
 map.put("ids",str.spit(","));

<if test="ids != null and ids != ''" >
 and col in 
<foreach collection="ids" item="item" open="(" separator="," close=")">
 <if test="item != null and item != ''" >
 #{item} 或者:cast(#{item} as numeric) 或者:#{item}::numeric 
</if> 
</foreach>
 </if>

3.mybatis xml里自己split

传参 ids: "1,2,3"

结果: col in('1','2','3')

<if test="ids != null and ids != ''" > 
and col in
 <foreach collection="ids.split(',')" item="item" open="(" separator="," close=")">
 <if test="item != null and item != ''" >
 #{item} 或者:cast(#{item} as numeric)
 </if> 
</foreach>
 </if>

4.CDATA

传参 ids: "1,2,3"

col in(1,2,3)

缺点,如果是字符串,就需要传 "''1'',''2'',''3''"

<if test="ids != null and ids != ''" > 
and col in (<![CDATA[ ${ids} ]]>)
 </if>

推荐1,3

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值