mybatis foreach标签!

java:
Map map = new HashMap();
map.put("userName","tom");
map.put("passWord","123");
String[] a = { "20000001", "20000002" };
map.put("classIds", Arrays.asList(a));

queryPasswordByUserId(userMap);

sql xml:

select PASSWORD as "password" from T_S_P_USER 
<trim prefix="WHERE" prefixOverrides="AND|OR">
  <if test="userId   != null">USER_ID = #{userId}</if>
  <if test="password != null">and PASSWORD = #{password}</if>
  <if test="classIds != null">and PASSWORD in 
    <foreach collection="list" item="classIds" open="(" separator="," close=")">
 #{classIds[]}
     </foreach>
  </if>
</trim>

是不是foreach的用法有错啊?SQL语句错了!

以下代码测试通过,希望对你有帮助(加了一个CLASS_ID,不知道是不是你要表达的意思 )
[code="java"]
public void testQuery() {
ColInfoDao dao=(ColInfoDao)ctx.getBean("colInfoDao");
Map map = new HashMap();
map.put("userId", "tom");
map.put("password", "123");
String[] a = { "20000001", "20000002" };
map.put("classIds", Arrays.asList(a));
Object password = dao.query(map);
System.out.println("password:" + password);
Assert.assertEquals("123", password);
}
[/code]

[code="xml"]

<![CDATA[
select PASSWORD as password from T_S_P_USER
]]>


USER_ID=#userId#


PASSWORD=#password#



CLASS_ID = #classIds[]#




[/code]

and [color=red]PASSWORD [/color]in
是不是这个PASSWORD 错了啊?



= #变量名[]#