spring mybatis组合下对oracle的批量插入
2014-11-14 00:00
357 查看
摘要: spring mybatis组合框架下,对oracle的批量插入的xml方法
mybatis没有实现oracle的批量插入,网上提供的的jdbctemplate方式不能很好控制事务,而xml方式也总不如人意,因在项目中用到该类型情况,整好了,发出来大家共享共享。
网上很多方法都不注意
这个地方,使用了
这样会造成序列的多次执行,可是去掉selectKey标签又报错,所以只要改成
就可以了
mybatis没有实现oracle的批量插入,网上提供的的jdbctemplate方式不能很好控制事务,而xml方式也总不如人意,因在项目中用到该类型情况,整好了,发出来大家共享共享。
<insert id="insertBatch" parameterType="java.util.List"> <selectKey resultType="java.lang.Long" keyProperty="seqId" order="BEFORE"> SELECT 0 FROM DUAL </selectKey> insert into T_CSM_MERCH_IMP_DATA_ATTR (SEQ_ID, IMP_SEQ_ID, BATCH_ID, CHECK_KEY, ATTR_ID, ATTR_TYPE, ATTR_VAL, STATE) SELECT SQ_CSM_MECH_IMP_DATA_ATTR_ID.NEXTVAL , A.* FROM ( <foreach collection="list" item="item" index="index" separator="union all" > select #{item.impSeqId,jdbcType=DECIMAL}, #{item.batchId,jdbcType=VARCHAR}, #{item.checkKey,jdbcType=VARCHAR}, #{item.attrId,jdbcType=VARCHAR}, #{item.attrType,jdbcType=VARCHAR}, #{item.attrVal,jdbcType=VARCHAR}, #{item.state,jdbcType=CHAR} from dual </foreach> ) A </insert>
网上很多方法都不注意
<selectKey resultType="java.lang.Long" keyProperty="seqId" order="BEFORE"> SELECT 0 FROM DUAL </selectKey>
这个地方,使用了
<selectKey resultType="java.lang.Long" keyProperty="seqId" order="BEFORE"> SQ_CSM_MECH_IMP_DATA_ATTR_ID.NEXTVAL </selectKey>
这样会造成序列的多次执行,可是去掉selectKey标签又报错,所以只要改成
SELECT 0 FROM DUAL
就可以了
相关文章推荐
- spring mybatis组合下对oracle的批量插入
- MyBatis_结合Spring_Oracle批量插入
- SpringMVC+mybatis+oracle 批量插入
- mybatis-oracle批量插入数据的简单学习
- 关于 MyBatis MyBatis-Spring Jdbc 批量插入的各种比较分析
- Mybatis 批量插入带oracle序列 例子
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
- Mybatis 批量插入带oracle序列 例子
- mybatis+oracle批量插入
- MyBatis针对ORACLE的批量插入
- mysql + SpringMVC + MyBatis中批量插入实例以及@Param注解的用法
- mybatis 批量插入oracle与mysql
- mybatis支持oracle批量插入
- 使用mybatis在oracle进行批量插入的insert语句
- Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号
- 用mybatis查oracle,spring操纵mongodb插入数据时出现的时间类型问题
- mybatis、oracle批量插入配置
- Mybatis中实现oracle的批量插入、更新
- Mybatis中实现oracle的批量插入、更新
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert