Mybatis 对oracle进行批量操作
来源:互联网 发布:怎么看自己淘宝店铺号 编辑:程序博客网 时间:2024/05/17 01:48
最近需要用到Mybatis批量新增Oracle数据库,刚开始在网上找到的方法是都是更新MySQL的,试了一下发现不适合oracle,后来发现正确的oracle批量新增的sql是:
<insert id="insertAttractionsBatch" parameterType="Java.util.List">
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>
需要重点注意的是sql中没有values,和<foreach>标签中的(selece ..... from dual),mysql中的sql是这样的:
新增:
<insert id="insertAttractionsBatch" parameterType="java.util.List">
insert into ATTRACTIONS (
ID, NAME, LONGITUDE, LATITUDE, UPDATE_TIME
)
<foreach collection="list" item="item" index="index" separator="union all" >
#{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}, #{item.longitude,jdbcType=DECIMAL}, #{item.updateTime,jdbcType=TIMESTAMP}
</foreach>
</insert>
oracle更新不能按普通的方式,需要这样:
<update id="updateAttractionsBatch" parameterType="java.util.List">
begin
<foreach collection="list" item="item" index="index" separator=";" >
update ATTRACTIONS
<set>
<if test="item.id!=null and item.id!=''">
id = #{item.id},
</if>
<if test="item.head!=null and item.head!=''">
HEAD = #{item.head},
</if>
</set>
where id = #{item.id}
</foreach>
;end;
</update>
删除就与MySql一样了如下:
<delete id="deleteAttractions" parameterType="java.util.List">
delete from ATTRACTIONS
<where>
<foreach collection="list" index="index" item="item" open="(" separator="or" close=")">
id=#{item.id}
</foreach>
</where>
</delete>
一个更简明例子:http://www.cnblogs.com/xxyfhjl/p/5659524.html
- Mybatis 对oracle进行批量操作
- mybatis 对 oracle 的批量操作,
- Mybatis Oracle批量操作
- mybatis 对oracle和mysql 批量插入操作
- mybatis 进行批量更新操作
- mybatis批量操作Oracle数据
- Mybatis之批量操作-Oracle
- oracle+mybatis的批量操作
- 对Oracle进行操作
- MyBatis利用动态SQL进行批量操作
- Mybatis对Oracle批量插入的配置
- mybatis 对 mysql的批量操作
- Mybatis操作Oracle、mysql批量插入
- mybatis之mysql&oracle 批量操作
- Mysql和Oracle Mybatis批量操作
- git批量对文件进行rm操作
- linux批量对文件进行操作
- ibatis对数据库进行批量操作
- 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数
- C# 入门小练习(持续更新)
- Android base-adapter-helper 源码分析与扩展
- 智能手机
- java的基础知识复习
- Mybatis 对oracle进行批量操作
- CCNA第五天(静态路由,默认路由,时钟频率)
- Maven生成可以直接运行的jar包的多种方式
- 三角形对话气泡效果
- java 观察者模式
- Jquery--01
- Auth2.0 授权码模式个人分析思路
- 求字符串中最多连续出现多少个字符
- linux中客户端连接与钥匙生成