场景:mybatis +sqlserver +insert+foreach
差别:
foreach在外层和内存
separator符号不一样
效率:亲测第二种速度快
遗留:
不知道mysql是否类似,可以确认mysql支持第一种,但需要开启allowMultiQueries=true
1、等于是执行多条语句
<foreach collection="list" item="item" index="index" separator=";"> insert into GRJX_JJFPMX ( JJFPID, FPDXLX, FPDX, ZTBM,ztfpzt, GZL, ZLXS, GWQZ, P1Z, BZXS, JJ, PFZXBZ, CJRQ, CJR, XGRQ, XGR, BZ, JLZT,YGZL,ZTJC,FPDXMC,KSZRS,TDBM,TDMC,TBJE,JSJX) values (#{item.jjfpid,jdbcType=INTEGER}, #{item.fpdxlx,jdbcType=CHAR}, #{item.fpdx,jdbcType=VARCHAR}, #{item.ztbm,jdbcType=VARCHAR},#{item.ztfpzt,jdbcType=VARCHAR}, #{item.gzl,jdbcType=NUMERIC}, #{item.zlxs,jdbcType=NUMERIC}, #{item.gwqz,jdbcType=NUMERIC}, #{item.p1z,jdbcType=NUMERIC}, #{item.bzxs,jdbcType=NUMERIC}, #{item.jj,jdbcType=NUMERIC}, #{item.pfzxbz,jdbcType=CHAR},getdate(), #{item.cjr,jdbcType=VARCHAR}, #{item.xgrq,jdbcType=TIMESTAMP}, #{item.xgr,jdbcType=VARCHAR}, #{item.bz,jdbcType=VARCHAR}, #{item.jlzt,jdbcType=CHAR},#{item.ygzl,jdbcType=NUMERIC}, #{item.ztjc,jdbcType=CHAR}, #{item.fpdxmc,jdbcType=CHAR},#{item.kszrs,jdbcType=CHAR},#{item.tdbm,jdbcType=CHAR},#{item.tdmc,jdbcType=CHAR}, #{item.tbje,jdbcType=NUMERIC}, #{item.jsjx,jdbcType=NUMERIC}) </foreach>
2、
insert into GRJX_JJFPMX ( JJFPID, FPDXLX, FPDX, ZTBM,ztfpzt, GZL, ZLXS, GWQZ, P1Z, BZXS, JJ, PFZXBZ, CJRQ, CJR, XGRQ, XGR, BZ, JLZT,YGZL,ZTJC,FPDXMC,KSZRS,TDBM,TDMC,TBJE,JSJX) values <foreach collection="list" item="item" index="index" separator=","> (#{item.jjfpid,jdbcType=INTEGER}, #{item.fpdxlx,jdbcType=CHAR}, #{item.fpdx,jdbcType=VARCHAR}, #{item.ztbm,jdbcType=VARCHAR},#{item.ztfpzt,jdbcType=VARCHAR}, #{item.gzl,jdbcType=NUMERIC}, #{item.zlxs,jdbcType=NUMERIC}, #{item.gwqz,jdbcType=NUMERIC}, #{item.p1z,jdbcType=NUMERIC}, #{item.bzxs,jdbcType=NUMERIC}, #{item.jj,jdbcType=NUMERIC}, #{item.pfzxbz,jdbcType=CHAR},getdate(), #{item.cjr,jdbcType=VARCHAR}, #{item.xgrq,jdbcType=TIMESTAMP}, #{item.xgr,jdbcType=VARCHAR}, #{item.bz,jdbcType=VARCHAR}, #{item.jlzt,jdbcType=CHAR},#{item.ygzl,jdbcType=NUMERIC}, #{item.ztjc,jdbcType=CHAR}, #{item.fpdxmc,jdbcType=CHAR},#{item.kszrs,jdbcType=CHAR},#{item.tdbm,jdbcType=CHAR},#{item.tdmc,jdbcType=CHAR}, #{item.tbje,jdbcType=NUMERIC}, #{item.jsjx,jdbcType=NUMERIC}) </foreach>