mybatis中不同数据库批量导入数据的写法

  批量导入对于我们很常用。写法也根据不同数据库,有不一样的地方。
  下边介绍mybatis分别连接MysqlOracle库的时候,在mapper.xml中的写法。

1、mysql 批量导入写法

  mysql库的批量导入sql类似如下:

`insert into [表名] (col1,col2) values  (val1,val2),(val1,val2)`

  举例如下:

 <select id="addBatchLzdkbList" parameterType="znxd.tdlz.model.lz.Lzdkb">
    insert into lzdkb (YWH,DKBM,CBFBM,CBFMC,XZCODE,C1,C2,C3) values
    <foreach collection="list" item="item" index="index" open="" separator="," close="">
      (#{item.ywh,jdbcType=VARCHAR}, #{item.dkbm,jdbcType=VARCHAR},
      #{item.cbfbm,jdbcType=VARCHAR}, #{item.cbfmc,jdbcType=VARCHAR}, #{item.xzcode,jdbcType=VARCHAR},
      #{item.c1,jdbcType=VARCHAR}, #{item.c2,jdbcType=VARCHAR}, #{item.c3,jdbcType=VARCHAR})
    </foreach>
  </select>
2、oracle批量导入写法

  oracle库的批量导入sql,大概如下:

insert into [表名] (col1,col2) 
select a.* from ( 
	select val1,val2 from dual 
	union all 
	select val1,val2 from dual 	
) a

  举例如下:

 <insert id="insertBatch" parameterType="java.util.List">
    insert into TDTG
    (ID, CBFBM, CBFMC,
    CBFZJHM, DKMC)
    SELECT A.* FROM(
    <foreach collection="list" item="item" index="index" separator="UNION ALL">
      SELECT
   #{item.id,jdbcType=DECIMAL}, #{item.cbfbm,jdbcType=VARCHAR},
  #{item.cbfmc,jdbcType=VARCHAR},#{item.cbfzjhm,jdbcType=VARCHAR}, 
  #{item.dkmc,jdbcType=VARCHAR}
      FROM dual
    </foreach>
    )A
  </insert>

  为了提高导入速度,可能在批量导入的时候,分批导入,这样就需要截取集合。

  如果想要截取集合的工具类,可以看另一篇文章java集合截取的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茁壮成长的凌大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值