博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis批量增加,删除,更新Oracle
阅读量:6474 次
发布时间:2019-06-23

本文共 1602 字,大约阅读时间需要 5 分钟。

hot3.png

 

最近需要用到Mybatis批量新增oracle数据库,刚开始在网上找到的方法是都是更新的,试了一下发现不适合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>

转载于:https://my.oschina.net/ZhangJava/blog/718948

你可能感兴趣的文章
Apple分析师:今年有望看到iPhone三镜头与另外三款iPhone
查看>>
js和es6中常用的字符串方法总结(收藏)
查看>>
猪行天下之Python基础——3.2 列表 & 元组
查看>>
Http和Https
查看>>
Django使用Channels实现WebSocket--上篇
查看>>
Java 设计模式(三)《单例模式》
查看>>
个人博客
查看>>
IDEA 快捷键(Windows)
查看>>
数据结构与算法——复杂度分析(一)
查看>>
【Dubbo源码阅读系列】之 Dubbo SPI 机制
查看>>
Hadoop Mapreduce 中的Partitioner
查看>>
记录flex弹性盒布局过程 - 自动margin
查看>>
arm64 架构之入栈/出栈操作
查看>>
如何优雅地在 Spring Boot 中使用自定义注解,AOP 切面统一打印出入参日志 | 修订版...
查看>>
简单才是王道?刚开源的微服务任务调度平台SIA—TASK初探
查看>>
关于双重锁单例模式
查看>>
小白的进阶之路之vue源码解读(0)
查看>>
《Miss Talk》第05期:对话唱唱启蒙英语技术总监 李超
查看>>
【Android架构】基于MVP模式的Retrofit2+RXjava封装之多Url(七)
查看>>
MockJS快速入门
查看>>