最近公司业务中为了提高效率要做mybatis批量更新,但是到了oracle数据库中做了好几次都没成功,后来发现mybatis最后少了个分号,可能是Mybatis内部做了异常try  catche  处理,导致控制台没有报错信息。在此仅做小记。

Mapper文件中的方法定义如下:

public int updateCreditStatuslist(List<UserCreditStatus> list);

Mapper.xml文件的实现如下:(creditStatus是对象内部的成员,id是对象内部的一个对象)

<update id="updateCreditStatuslist" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" separator=";">
  update XB_CREDIT_STATUS_P
  set
  CREDIT_STATUS=#{item.creditStatus}, CREDIT_TIME=#{item.creditTime}

  where subsid=#{item.id.subsId} and OPERATIONID=#{item.id.operationId}
  and
  SUB_OPERATIONID=#{item.id.subOperation}
</foreach>
  ;  <!--注意红色的分号,不加就不会批量更新,并且不会报错。。。。-->

</update>

05-08 08:38