最近需要用到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>
相关推荐
批量删除同样可以用类似的方式,比如: ```xml ;"> DELETE FROM la_t_contact_record WHERE id = #{id,jdbcType=DECIMAL} ``` 在删除操作中,我们只需要遍历列表,为每个ID生成一个DELETE语句。 总的来说,...
Mybatis批量删除多表 MyBatis是一个功能强大且灵活的持久层框架,它能够帮助开发者快速高效地实现数据的持久化操作。在实际开发中,我们经常需要对多个表进行批量删除操作,这时就需要使用MyBatis的批量删除功能。...
"Mybatis中使用updateBatch进行批量更新" Mybatis是一个基于Java的持久层框架,提供了批量更新的功能,以提高数据库操作的效率。在Mybatis中,可以使用updateBatch方法来进行批量更新,下面将详细介绍Mybatis中使用...
本工具“Oracle/MySQL生成mybatis文件工具”旨在为开发者提供便利,自动根据数据库中的表结构生成相应的MyBatis映射文件(Mapper XML)以及实体类(Entity Java),从而提高开发效率,减少手动编写SQL和Java代码的...
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC...希望本文对理解和使用MyBatis批量删除操作有所帮助,如有任何疑问,欢迎留言讨论。感谢大家对我们网站的支持!
MyBatis的XML映射文件定义了SQL语句,用于查询、插入、更新和删除BLOB字段。例如,获取单个记录的SQL查询语句如下: ```xml SELECT FROM BLOB_FIELD a WHERE a.ID = #{id} ``` 这里的`blobFieldColumns`...
MyBatis Plus(简称iMybatis)是一款基于MyBatis框架的扩展插件,它旨在简化MyBatis的常规操作,提供更为便捷的 CRUD(创建、读取、更新、删除)功能,以及丰富的条件构造器,让数据库操作更加简单。在3.2.1这个版本...
MyBatis-Plus是一个强大的MyBatis扩展框架,它简化了常见的CRUD操作,提供了诸如自动填充、条件构造器、批量插入等实用功能。在这个"mybatis-plus学习项目笔记"中,我们可以深入探讨MyBatis-Plus的核心特性,以及...
Mybatis Plus 是一个针对 Mybatis 的轻量级增强工具,它在 Mybatis 的基础上提供了许多便利的功能,使得在实际开发中能够更加高效地操作数据库。Mybatis Plus 的 v3.5.3.2 版本引入了更多优化和改进,提高了开发效率...
本套源代码实现了Spring 和 mybatis 和 layui 集成情况下的基础操作,包括: 增删改查、分页、导入导出等功能。数据库为mysql,脚本在源代码根目录下,mybatis_crud.sql
JDBC提供了一系列的API,使得Java程序员能够执行SQL语句,进行数据的读写、更新和删除。对于批量入库,JDBC提供了一个名为`PreparedStatement`的接口,它允许预编译SQL语句,适用于多次执行相同或相似的SQL的情况,...
3. **批量删除**:批量删除同样利用批处理,将多个删除请求整合到一起执行,减少了数据库的开销。 4. **事务管理**:MyBatis-Batch 自动管理批处理过程中的事务,确保批量操作的原子性。如果在批处理过程中发生错误...
尚硅谷_MyBatis_动态sql_foreach_oracle下批量插入的两种方式.avi** - **Oracle下的批量插入**:Oracle数据库有自己的批量插入语法,可能与MySQL有所不同,此视频会对比分析两种数据库的批量操作差异。 4. **50....
MyBatis Plus是MyBatis的一个扩展,提供了更为强大的CRUD操作,包括自动填充、条件构造、批量插入、删除等,简化了日常的数据库操作,与MyBatis Plugin有相似的目标,都是为了提升MyBatis的开发效率。 MyBatis ...
这个工具包在 MyBatis 的基础上进行了许多增强,提供了诸如自动 CRUD(创建、读取、更新、删除)操作、条件构造器、批量插入、主键自动生成等功能。 1. **CRUD 操作**:MyBatis-Plus 提供了简单易用的 CRUD 方法,...
- **Mapper接口**:包含CRUD(创建、读取、更新、删除)操作的方法。 - **Mapper XML文件**:定义SQL语句,与Mapper接口对应的方法绑定。 - **实体类**:代表数据库表的记录,通常包含属性和getter/setter方法。 ...
今天在项目中,使用Mybatis对oracle数据库进行操作的时候,报出ORA-00911: invalid character的错误,检查了一下SQL,发现都书写正确啊,复制到plsql上执行也都没问题,这什么原因呢? 注意:这里说的是用navicat...
开发者可能使用SQL(Structured Query Language)来与Oracle交互,执行查询、插入、更新和删除操作。 在"企业管理-第十一章示例程序"中,我们可以期待看到一系列示例程序,这些程序可能涵盖了诸如用户管理、权限...
系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除 3. 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料 4. 菜单管理:增删改查菜单 ztree(自定义...
28. **MyBatis如何处理级联更新和级联删除?** 在ResultMap中配置关联对象的cascade属性,设置为“all-delete-orphan”或“update”。 29. **MyBatis如何进行分库分表操作?** 可以使用MyBatis Plus、...