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;   使用双引号""。

原文地址:https://www.cnblogs.com/xxyfhjl/p/5659524.html