数据库–MyBatis的(insert,update,delete)三种批量操作

  • Post author:
  • Post category:其他



前段时间由于项目赶期没顾上开发过程中的性能问题,现对部分代码进行优化的过程中发现在数据量大的情况下对数据的操作反应似乎有些慢,就想到对数据库DML操作的时候进行批量操作。说道这里也想到自己在一次面试的时候别问道过批量操作数据的问题。


现对运用说明记录如下:


批量插入insert


方法一:


<insert id=”insertbatch” parameterType=”java.util.List”>


<selectKey keyProperty=”id” order=”AFTER”


resultType=”int”>


SELECT LAST_INSERT_ID()


</selectKey>


INSERT INTO  sourcedoc (



sdate, sweek,





roomno, daysched, nightsched,





adminsched, vacationsched, programdept,





programname





)values



<foreach collection=”list” item=”item” index=”index” separator=”,”>



(



#{item.sdate},#{item.sweek},#{item.roomno},



#{item.daysched},#{item.nightsched},#{item.adminsched},



#{item.vacationsched},#{item.programdept},#{item.programname}



)



</foreach>


</insert>


方法二:



<insert id=”batchInsert” parameterType=”ArrayList”>






insert into table1(sdate,sweek,roomno,daysched,nightsched,adminsched,vacationsched,programdept,programname)






<foreach collection=”list” item=”item” index=”index” separator=”union all”>






select #{item.

sdate

,jdbcType=VARCHAR},






#{item.

sweek

,jdbcType=VARCHAR},






#{item.

roomno

,jdbcType=VARCHAR},






#{item.

nightsched

,jdbcType=VARCHAR},







版权声明:本文为yangweixing10原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。