mybatis支持oracle批量插入

问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可。

但是,oracle不支持。

oracle支持如下写法:

<insert id="insertStudents">
        INSERT INTO Student
            (
                id,
                name,
                age,
                sex
            )
        <foreach collection="stuList" item="item" index="index" separator="union all" >
              (
                  select
                      #{item.id,jdbcType=VARCHAR},
                    #{item.name,jdbcType=VARCHAR},
                    #{item.age,jdbcType=VARCHAR},
                    #{item.sex,jdbcType=VARCHAR}
                from dual
               )
        </foreach>
       </insert>

其中dao的写法如下:

public void insertStudents(@Param("stuList") List<Student> stuList);

知识点:

oracle给字段起有空格的别名:select count(*)  as "my sum" from student;   使用双引号""。

时间: 2024-10-12 20:44:08

mybatis支持oracle批量插入的相关文章

mybatis使用oracle批量插入

mysql的批量大家应该都知道,oracle和mysql还是有些不同的,如下: <insert id="inserts" parameterType="com.qianxingniwo.model.DlyOnlinePayOrder" useGeneratedKeys="false" > insert into YYSC_PLAT.DLY_ONLINE_PAY_ORDER (ORDER_ID, TRANSACTION_ID, ORDE

mybatis oracle批量插入

<insert id="insertbatchinfotoemploees" parameterType="java.util.List"> insert into INFOTOEMPLOEE select INFO_EMPLOEES.NEXTVAL,A.* from( <!--INFO_EMPLOEES为自增序列--> <foreach collection="list" item="item"

Mybatis+Oracle --批量插入

Oracle自增长ID: 参考博客:Oracle数据库创建表ID字段的自动递增 mybatis语句 参考博客:点评 ibatis+oracle 批量插入的三种方法. 参考第三种 参考博客:mybatis中批量插入的两种方式(高效插入) Oracle自增长ID,如下: 序列: CREATE SEQUENCE "ENERGY"."ROLE_OBJECT_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCRE

MyBatis在Oracle中插入数据并返回主键的问题解决

引言:  在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle, Spring 3.2   SQL Snippet in XML Configuration: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType="

mybatis Oracle 批量插入,批量更新

传入的参数只要是list类型的参数就行了..............1.批量插入 <insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item=&quo

Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名

Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.NodeDataEntity" databaseId="oracle"> insert into "NODE_DATA" ( "NODE_ID", "DATA_TIME", "DATA_VALUE"

Oracle批量插入数据

学习了:http://blog.csdn.net/chenleixing/article/details/45165761/ 膜拜一下,引用原文: 那么有没有其他方法呢??答案是有的,也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:"INSERT ALL INTO a表 VALUES(各个值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句".后边跟的SELECT 语句我们可以从虚

Oracle批量插入有日期类型数据

例如现在有张表 id(number) startTime(date) name(varchar2) 1 2017-08-13  zhangsan 2 2017-08-14  zhangsan 需要批量插入name为zhangsan,日期以天递增,一个月的数据 1 insert into t(id,date,name) 2 select level,trunc(current_timestamp)+level,'zhangsan' 3 from dual 4 connect by level<=

mybatis父子表批量插入

<!--父子表批量插入 --> <insert id="insertBatch" parameterType="com.niwopay.dto.benifit.JFOrderVipDTO"> begin insert into TB_JF_ORDER <trim prefix="(" suffix=")" suffixOverrides="," > <if test