Mybatis 中的sql批量修改方法实现

在项目中遇到需要批量更新的功能,原本想的是在Java中用循环访问数据库去更新,但是心里总觉得这样做会不会太频繁了,太耗费资源了,效率也很低,查了下mybatis的批量操作,原来确实有<foreach>标签可以做到。

dao  层接口:

public class Demo{ 
  private int id; 
  private String name; 
  private String sex; 
}
<pre name="code" class="html">public int update(@Param("list") List<Demo> list);</pre><br> 
<br> 
<p></p> 
<pre></pre> 
<br> 
xml 文件: 
<p></p> 
<p><update id="update" parameterType="java.util.List"><br> 
</p> 
<p>update bpm_info set message_id= 1 where id in <br> 
  <span style="white-space:pre"></span><foreach collection="list" index="index" item="item" open="(" separator="," close=")"><br> 
  <span style="white-space:pre"></span>#{item.id}<br> 
  <span style="white-space:pre"></span></foreach><br> 
</update><br> 
</p> 
<p><br> 
</p> 
<p>以上这种做法适用情况是:根据传入的List参数集合中的每一个id遍历去更新指定字段。。</p> 
<p><br> 
</p> 
<p>其中:</p> 
<p>1.collection 中要对应接口中集合的名称</p> 
<p>2.item 是集合的别名</p> 
<p><br> 
</p> 

以上所述是小编给大家介绍的Mybatis 中的sql批量修改方法实现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...