一、mysql中的批量插入
在mysql中可以使用insert语句直接插入多条数据,多组数据之间用逗号隔开,sql基本格式如下:
insert into 表名(字段1,字段2) values(值1,值2) , (值3,值4)
xml文件中的写法为:
<insert id="batchRprp" parameterType="java.util.List">
insert into V_TDM_RPRP_RIVAL(C_RIVAL_CODE,C_NAME,C_ALL_NAME)
values
<foreach collection="list" item="r" separator=",">
(#{r.rivalCode},#{r.name},#{r.allName})
</foreach>
</insert>
二、oracle中批量插入
首先,oracle中不能像mysql中那种格式进行批量插入,否则会直接报语法错误,我遇到的语法错误是:java.sql.SQLException: ORA-00933: SQL 命令未正确结束
oracle中批量插入应该使用以下语法格式:
insert all
into tablename(column1,column2) values(value11,value12)
into tablename(column1,column2) values(value21,value22)
into tablename(column1,column2) values(value31,value32)
select * from dual
mybatis中的写法如下
<insert id="batchRprp" parameterType="java.util.List">
insert all
<foreach collection="list" item="r">
into V_TDM_RPRP_RIVAL(C_RIVAL_CODE,C_NAME,C_ALL_NAME)
values (#{r.rivalCode},#{r.name},#{r.allName})
</foreach>
select * from dual
</insert>