Java实现Mybatis将数据批量插入到Oracle数据库

来源:互联网 发布:定位兔软件下载 编辑:程序博客网 时间:2024/04/28 08:23

最近项目在开发的时候需要导入批量数据,尝试使用批量插入时遇到了几个问题:

1、Oracle批量插入数据的SQL是怎么写的?

2、插入的数据id使用的序列来生成的,如何引入进来?

在网上搜索了资料后找到了相应的解决方法,记录一下,以备不时之需。

1、Oracle批量插入数据库的写法:

<pre name="code" class="html"><insert id="batchInsertAccountInfo" parameterType="java.util.List">INSERT INTO ACCOUNT_INFO(ID, USERNAME,PASSWORD,GENDER, EMAIL,CREATE_DATE)(<foreach collection="list" index="" item="accountInfo" separator="union all">select#{accountInfo.id}#{accountInfo.userName},#{accountInfo.password},#{accountInfo.gender},#{accountInfo.email},sysdatefrom dual</foreach>)</insert>


2、在mybatis中使用序列来生成主键ID:

<span style="white-space:pre"></span><insert id="batchInsertAccountInfoUseSeq" parameterType="java.util.List"><selectKey resultType="long" keyProperty="id" order="BEFORE">             <span style="white-space:pre"></span>SELECT ACCOUNT_SEQ.NEXTVAL FROM dual        <span style="white-space:pre"></span></selectKey> INSERT INTO ACCOUNT_INFO(ID, USERNAME,PASSWORD,GENDER, EMAIL,CREATE_DATE)SELECT ACCOUNT_SEQ.NEXTVAL, m.* FROM(<foreach collection="list" index="" item="accountInfo"separator="union all">select#{accountInfo.userName},#{accountInfo.password},#{accountInfo.gender},#{accountInfo.email},sysdatefrom dual</foreach>) m</insert>


完整项目链接:https://github.com/lanqingchen/oracle  



0 0
原创粉丝点击