`

Mybatis批量增加,删除,更新Oracle

阅读更多

最近需要用到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>

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle + Mybatis实现批量插入、更新和删除示例代码

    批量删除同样可以用类似的方式,比如: ```xml ;"&gt; DELETE FROM la_t_contact_record WHERE id = #{id,jdbcType=DECIMAL} ``` 在删除操作中,我们只需要遍历列表,为每个ID生成一个DELETE语句。 总的来说,...

    Mybatis批量删除多表

    Mybatis批量删除多表 MyBatis是一个功能强大且灵活的持久层框架,它能够帮助开发者快速高效地实现数据的持久化操作。在实际开发中,我们经常需要对多个表进行批量删除操作,这时就需要使用MyBatis的批量删除功能。...

    Mybatis中使用updateBatch进行批量更新

    "Mybatis中使用updateBatch进行批量更新" Mybatis是一个基于Java的持久层框架,提供了批量更新的功能,以提高数据库操作的效率。在Mybatis中,可以使用updateBatch方法来进行批量更新,下面将详细介绍Mybatis中使用...

    Oracle/MySQL生成mybatis文件工具

    本工具“Oracle/MySQL生成mybatis文件工具”旨在为开发者提供便利,自动根据数据库中的表结构生成相应的MyBatis映射文件(Mapper XML)以及实体类(Entity Java),从而提高开发效率,减少手动编写SQL和Java代码的...

    Mybatis批量删除数据操作方法

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC...希望本文对理解和使用MyBatis批量删除操作有所帮助,如有任何疑问,欢迎留言讨论。感谢大家对我们网站的支持!

    深入浅析mybatis oracle BLOB类型字段保存与读取

    MyBatis的XML映射文件定义了SQL语句,用于查询、插入、更新和删除BLOB字段。例如,获取单个记录的SQL查询语句如下: ```xml SELECT FROM BLOB_FIELD a WHERE a.ID = #{id} ``` 这里的`blobFieldColumns`...

    mybatis plus 3.2.1破解版

    MyBatis Plus(简称iMybatis)是一款基于MyBatis框架的扩展插件,它旨在简化MyBatis的常规操作,提供更为便捷的 CRUD(创建、读取、更新、删除)功能,以及丰富的条件构造器,让数据库操作更加简单。在3.2.1这个版本...

    mybatis-plus学习项目笔记

    MyBatis-Plus是一个强大的MyBatis扩展框架,它简化了常见的CRUD操作,提供了诸如自动填充、条件构造器、批量插入等实用功能。在这个"mybatis-plus学习项目笔记"中,我们可以深入探讨MyBatis-Plus的核心特性,以及...

    Mybatis增强工具包(Mybatis plus) v3.5.3.2.zip

    Mybatis Plus 是一个针对 Mybatis 的轻量级增强工具,它在 Mybatis 的基础上提供了许多便利的功能,使得在实际开发中能够更加高效地操作数据库。Mybatis Plus 的 v3.5.3.2 版本引入了更多优化和改进,提高了开发效率...

    Spring+mybatis+layui实现增删改查,分页,导入导出功能源代码

    本套源代码实现了Spring 和 mybatis 和 layui 集成情况下的基础操作,包括: 增删改查、分页、导入导出等功能。数据库为mysql,脚本在源代码根目录下,mybatis_crud.sql

    java操作Oracle批量入库

    JDBC提供了一系列的API,使得Java程序员能够执行SQL语句,进行数据的读写、更新和删除。对于批量入库,JDBC提供了一个名为`PreparedStatement`的接口,它允许预编译SQL语句,适用于多次执行相同或相似的SQL的情况,...

    mybatis-batch.zip

    3. **批量删除**:批量删除同样利用批处理,将多个删除请求整合到一起执行,减少了数据库的开销。 4. **事务管理**:MyBatis-Batch 自动管理批处理过程中的事务,确保批量操作的原子性。如果在批处理过程中发生错误...

    尚硅谷Mybatis视频教程41-50

    尚硅谷_MyBatis_动态sql_foreach_oracle下批量插入的两种方式.avi** - **Oracle下的批量插入**:Oracle数据库有自己的批量插入语法,可能与MySQL有所不同,此视频会对比分析两种数据库的批量操作差异。 4. **50....

    mybatis_plugin_2.91

    MyBatis Plus是MyBatis的一个扩展,提供了更为强大的CRUD操作,包括自动填充、条件构造、批量插入、删除等,简化了日常的数据库操作,与MyBatis Plugin有相似的目标,都是为了提升MyBatis的开发效率。 MyBatis ...

    mybatis-plus-3.0.zip

    这个工具包在 MyBatis 的基础上进行了许多增强,提供了诸如自动 CRUD(创建、读取、更新、删除)操作、条件构造器、批量插入、主键自动生成等功能。 1. **CRUD 操作**:MyBatis-Plus 提供了简单易用的 CRUD 方法,...

    mybatis-generator-core-1.3.2

    - **Mapper接口**:包含CRUD(创建、读取、更新、删除)操作的方法。 - **Mapper XML文件**:定义SQL语句,与Mapper接口对应的方法绑定。 - **实体类**:代表数据库表的记录,通常包含属性和getter/setter方法。 ...

    Mybatis出现ORA-00911: invalid character的解决办法

    今天在项目中,使用Mybatis对oracle数据库进行操作的时候,报出ORA-00911: invalid character的错误,检查了一下SQL,发现都书写正确啊,复制到plsql上执行也都没问题,这什么原因呢? 注意:这里说的是用navicat...

    jsp+oracle企业管理系统源码

    开发者可能使用SQL(Structured Query Language)来与Oracle交互,执行查询、插入、更新和删除操作。 在"企业管理-第十一章示例程序"中,我们可以期待看到一系列示例程序,这些程序可能涵盖了诸如用户管理、权限...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除 3. 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料 4. 菜单管理:增删改查菜单 ztree(自定义...

    36道面试常问的MyBatis面试题!.zip

    28. **MyBatis如何处理级联更新和级联删除?** 在ResultMap中配置关联对象的cascade属性,设置为“all-delete-orphan”或“update”。 29. **MyBatis如何进行分库分表操作?** 可以使用MyBatis Plus、...

Global site tag (gtag.js) - Google Analytics