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

おすすめ

転載: blog.csdn.net/x18094/article/details/121423132