mybatis提供了批量上传的方法,其实只需要在xml中配置sql语句即可,我们直接来看实现:
<insert id="insertlist" parameterType="java.util.List">
insert into rfid_raw_eri (tid, bzhh, bzxh)
<foreach collection="list" item="bean" index="index" separator="union all">
( select #{bean.tid,jdbcType=VARCHAR},
#{bean.bzhh,jdbcType=VARCHAR},
#{bean.bzxh,jdbcType=VARCHAR} from dual)
/foreach>
</insert>
如果需要oracle的sequence自动生成主键的话,需要稍作改动,实现如下:
<insert id="insertlist" parameterType="java.util.List">
insert into rfid_raw_eri_inventory (xh, bzhh, bzxh, rkdh, zt)
SELECT SEQ_TEST.NEXTVAL, A.* FROM(
<foreach collection="list" item="bean" index="index"
separator="union all">
( select #{bean.bzhh,jdbcType=VARCHAR},
#{bean.bzxh,jdbcType=VARCHAR},
#{bean.rkdh,jdbcType=VARCHAR},
1 from dual)
</foreach>
) A
</insert>