赞
踩
注意:在这里遇到了一个巨坑,先提出来,以防大家被坑:
有时候在万事俱备后,执行控制台会报以下错误
原因是:
<insert id="insert_" useGeneratedKeys="false">
</insert>
批量插入时,如果没有主键,一定要显式指定useGeneratedKeys为false,否则会报: SQL 命令未正确结束
解决方法查自 : http://blog.csdn.net/dou612/article/details/51427566
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下来进入正题:
转自 : http://blog.csdn.net/dzhuqiaolun/article/details/54864521
1:返回插入新数据的主键(主键序列自增)
2:批量插入 传入参数list
注:需配置 useGeneratedKeys="false",才用自定义主键。虽默认为false,但是还是需要配置。
3:批量更新 传入参数list
注:与MySQL的区别是在语句前后加 begin ;end;
运行通过。在Oracle的版本中,有几点需要注意的:
1.SQL中没有VALUES;
2.<foreach>标签中的(selece ..... from dual);
3.<foreach>标签中的separator的属性为"UNION ALL",将查询合并结果集。
当不使用Mybatis的主键生成策略,而是使用后台自己生成的UUID作为一个属性传入当做主键时候:
- <insert id="insertAttractionsBatch" parameterType="java.util.List" useGeneratedKeys="false">
- insert into ATTRACTIONS (
- ID, NAME, LONGITUDE, LATITUDE, UPDATE_TIME
- )
- <foreach collection="list" item="item" index="index" separator="union all" >
- (select
- #{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR},
- #{item.longitude,jdbcType=DECIMAL}, #{item.updateTime,jdbcType=TIMESTAMP}
- from dual)
- </foreach>
- </insert>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。