首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Mybatis 批量安插数据到Oracle

2013-08-21 
Mybatis 批量插入数据到Oracle? ? 最近项目有个功能,需要批量插入数据,使用的orm框架的是mybatis,再此记录

Mybatis 批量插入数据到Oracle

? ? 最近项目有个功能,需要批量插入数据,使用的orm框架的是mybatis,再此记录一下

? ? 以oracle中scott用户的emp表为例

? ??
Mybatis 批量安插数据到Oracle
其中EMPNO为主键,HIREDATE为DATE类型,SAL、COMM、DEPTNO为NUMBER类型

?

? ? ?oracle批量插入数据语法:

? ? ?

INSERT INTO table_name  (column1, column2, column3)  (SELECT ?, ?, ?     FROM dual   UNION ALL   SELECT ?, ?, ?     FROM dual   UNION ALL   SELECT ?, ?, ? FROM dual)
? ? 添加两条数据到emp表

?

? ? ?

INSERT INTO EMP(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO)(  SELECT '9527' ,'XINGXING','CLERK', 7902 ,TO_DATE('2012-03-14','yyyy-mm-dd'), 1000.00 , 20 FROM DUAL  UNION ALL   SELECT '8888' ,'Jason','CLERK', 7902 ,TO_DATE('2012-03-15','yyyy-mm-dd'), 1500.00 , 20 FROM DUAL)

? ? mybatis 中的emp.xml配置如下

? ? 需求:批量向雇员表插入数据,参数为List,List中存放的是Map,Map中则以Key-Value形式存放数据信息

? ? ?如:Map {EMPNO="9527",ENAME="XINGXING",JOB="CLERK",MGR="7902",HIREDATE="2012-03-14",SAL="1000.00",DEPTNO="20"}

? ??

<insert id="insertData" parameterType="java.util.List" >    INSERT INTO EMP(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO) (    <foreach collection="list" item="item" index="index" separator="union all">    select    #{item.EMPNO,jdbcType=VARCHAR},    #{item.ENAME,jdbcType=VARCHAR},    #{item.JOB,jdbcType=VARCHAR},    #{item.MGR,jdbcType=NUMERIC},    #{item.MGR,jdbcType=NUMERIC},    TO_DATE(#{item.HIREDATE,jdbcType=VARCHAR},'yyyy-mm-dd')      from dual    </foreach>    )</insert>

?

? ? 现在就可以批量添加数据了-^-^-

?

? ? 参考:http://www.dewen.org/q/6247

? ??

热点排行