ids 是用什么传进来的,map 还是 list

解决方案 »

  1.   

    我在Customer实体类中定义了ids变量
      

  2.   

    我在Customer实体类中定义了ids变量知道。问的是 ids 变量是什么类型的
      

  3.   

    我在Customer实体类中定义了ids变量知道。问的是 ids 变量是什么类型的
    ids是String类型的
      

  4.   

    ids 这个 String 的格式怎么样的?多个 id 之间怎么分开?
    恐怕不行,你试试把它换成 list 或者 map 传进来
      

  5.   

    我的ids传过来是1,2,3,4这样的
      

  6.   

    <statement id="getMenu" parameterClass="java.util.List"
    resultMap="menuResult">select * from APP_MENU where (TASK_ID,AUTH_CODE) in 
    <iterate property="SampleData" open="(" close=")" conjunction=",">$SampleData[].task$,$SampleData[].authCode$</iterate></statement>
    这里有个传入 list 的 where in 操作的例子,你可以参考一下
      

  7.   

    我的是ibatis中批量操作操作的mysql
      

  8.   

    为什么不在业务层用for循环 然后一条一条更新呢
      

  9.   

    这种写法是可以的,但用$$这种写法容易被sql注入 
      

  10.   


    版主这个和我在程序里面用for循环差不多的!
      

  11.   


    版主这个和我在程序里面用for循环差不多的!
    不一样吧。
    这个只操作数据库一次。
    程序里用 for 循环的话,就是 N 次数据库操作。
      

  12.   


    版主这个和我在程序里面用for循环差不多的!
    不一样吧。
    这个只操作数据库一次。
    程序里用 for 循环的话,就是 N 次数据库操作。嗯好的,我试试
      

  13.   

    理论上来说 ,楼主这样写 应该没问题啊。。 
    你去掉<![CDATA[ ]]>这个试试呢。。
      

  14.   


    版主这个和我在程序里面用for循环差不多的!
    不一样吧。
    这个只操作数据库一次。
    程序里用 for 循环的话,就是 N 次数据库操作。
    <update id="updateStatusBatch" parameterClass="hashMap">  
    update  
    Question  
    set  
    status = #status#  
    <dynamic prepend="where questionId in">  
    <isNotNull property="actionIds">  
    <iterate property="actionIds" open="(" close=")" conjunction=",">  
    #actionIds[]#  
    </iterate>  
    </isNotNull>  
    </dynamic>  
    </update >  这个表示没看懂,#status#  这个参数值如何得到?property="actionIds" actionIds是哪里来的?
      

  15.   


    版主这个和我在程序里面用for循环差不多的!
    不一样吧。
    这个只操作数据库一次。
    程序里用 for 循环的话,就是 N 次数据库操作。嗯好的,我试试我现在就是想用类多传几个参数进来,String只能传递一个参数,其它参数就只能写死了!我之前就是ids是String传递过来的,状态什么的写死了!
      

  16.   

    #status#
    是你传进来的 hashMap 集合里的 key 为 status 的那个值。
      

  17.   


    版主这个和我在程序里面用for循环差不多的!
    不一样吧。
    这个只操作数据库一次。
    程序里用 for 循环的话,就是 N 次数据库操作。嗯好的,我试试我现在就是想用类多传几个参数进来,String只能传递一个参数,其它参数就只能写死了!我之前就是ids是String传递过来的,状态什么的写死了!我用类不也是同样的道理吗?怎么就不可以呢?
      

  18.   


    <select id="getCarveoutStrs" parameterClass="com.jml.coproject.domain.CoProject" resultClass="com.jml.coproject.domain.DicCarveoutMode">
         SELECT carveoutName FROM dic_carveout_mode WHERE carveoutID in ($carveoutIDS$) 
        </select>
    我们程序里面的一段 ,你看看把 
      

  19.   

    可以传进来的 但是你用的 id in ($ids$)  $$不会默认拼'' 所以说 你传进来的值错了!少了''
    正确的形式应该是 '1', '2', '3' 这样就ok了!
      

  20.   

    感谢大家,其实这样写是可以的,就是我的实参其实是customerId