jacky66666 2011-08-15 14:05
浏览 1204
已采纳

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语句错了!

  • 写回答

3条回答 默认 最新

  • iteye_19391 2011-08-23 14:46
    关注

    以下代码测试通过,希望对你有帮助(加了一个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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?