<!-- 批量插入-->
<insert id="insertBatch">
insert into sys_org2
(<include refid="columns"/>)
<foreach close=")" collection="list" item="sysOrg" index="index" open="(" separator="union all">
select
#{sysOrg.orgId,jdbcType=NUMERIC},
#{sysOrg.demId,jdbcType=NUMERIC},
#{sysOrg.orgName,jdbcType=VARCHAR},
#{sysOrg.orgDesc,jdbcType=VARCHAR},
#{sysOrg.orgSupId,jdbcType=NUMERIC},
#{sysOrg.path,jdbcType=VARCHAR},
#{sysOrg.orgPathname,jdbcType=VARCHAR},
#{sysOrg.depth,jdbcType=NUMERIC},
#{sysOrg.orgType,jdbcType=NUMERIC},
#{sysOrg.creatorId,jdbcType=NUMERIC},
#{sysOrg.createtime,jdbcType=TIMESTAMP},
#{sysOrg.updateId,jdbcType=NUMERIC},
#{sysOrg.updatetime,jdbcType=TIMESTAMP},
#{sysOrg.sn,jdbcType=NUMERIC},
#{sysOrg.fromType,jdbcType=NUMERIC}
from dual
</foreach >
</insert>
<!-- 批量更新-->
<update id="batchUpdateFinalScore" parameterType="java.util.List" >
<foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
UPDATE 表名
SET USER_NAME = #{item.userName,jdbcType=VARCHAR},
RR1 = #{item.rr1,jdbcType=NUMERIC}
WHERE USER_CODE = #{item.userCode,jdbcType=VARCHAR} AND TIME_DATE = #{item.timeDate,jdbcType=VARCHAR}
</foreach>
</update>
注意:批量插入和更新时如果数据很多,导致sql语句过长时插入或者更新会报错:java.sql.SQLSyntaxErrorException 无效的主机/绑定变量名;大量数据批量操作可以分批操作;