1.批量插入数据到数据库
(1)数据库为MySQL的情况下
<insert id="insertByListMap" useGeneratedKeys="false" parameterType="java.util.List">
insert into XXPL (PRO_ID, REPORT_TYPE, YPL_COUNT, ASPL_COUNT, WPL_COUNT)
values
<foreach collection="list" item="xxpl" separator="," >
(
#{xxpl.proId,jdbcType=VARCHAR}, #{xxpl.reportType,jdbcType=VARCHAR},
#{xxpl.yplCount,jdbcType=DECIMAL}, #{xxpl.asplCount,jdbcType=DECIMAL},
#{xxpl.wplCount,jdbcType=DECIMAL}
)
</foreach>
</insert>
(2)Oracle与MySQL有点不同,首先是values不再需要,foreach标签里的separator需设置为separator=”UNION ALL”
如下所示
<insert id="insertByListMap" parameterType="java.util.List">
insert into XXPL (PRO_ID, REPORT_TYPE, YPL_COUNT, ASPL_COUNT, WPL_COUNT)
<foreach collection ="list" item="xxpl" separator="UNION ALL">
select
#{xxpl.proId,jdbcType=VARCHAR}, #{xxpl.reportType,jdbcType=VARCHAR},
#{xxpl.yplCount,jdbcType=DECIMAL}, #{xxpl.asplCount,jdbcType=DECIMAL},
#{xxpl.wplCount,jdbcType=DECIMAL}
from dual
</foreach >
</insert>