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条)

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)