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 错了啊?
= #变量名[]#