mybatis foreach批量插入数据:Oracle与MySQL区别介绍
下面给大家介绍mybatis foreach批量插入数据:Oracle与MySQL不同点:
•主要不同点在于foreach标签内separator属性的设置问题:
•separator设置为","分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) ,(v4,v5,v6) ,...
•separator设置为"union all"分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) union all (v4,v5,v6) union all...
•详情请见示例代码:
Oracle:
<insert id="inserData" parameterType="com.test.aaa.Bac"> insert into table_name (name, adress, age) values <foreach collection="list" item="item" index="index" separator="union all"> (select #{item.name}, #{item.adress}, #{item.age} from dual ) <foreach> </insert>
MySQL:
<insert id="inserData" parameterType="com.test.aaa.Bac"> insert into table_name (name, adress, age) values <foreach collection="list" item="item" index="index" separator=","> ( #{item.name}, #{item.adress}, #{item.age} ) <foreach> </insert>
总结
以上所述是小编给大家介绍的mybatis foreach批量插入数据:Oracle与MySQL区别,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
您可能感兴趣的文章:
- Mybatis中动态SQL,if,where,foreach的使用教程详解
- mybatis中foreach报错:_frch_item_0 not found的解决方法
- Mybatis动态SQL之if、choose、where、set、trim、foreach标记实例详解
- Oracle+Mybatis的foreach insert批量插入报错的快速解决办法
- MyBatis的foreach语句详解
相关推荐
-
Mybatis动态SQL之if、choose、where、set、trim、foreach标记实例详解
动态SQL就是动态的生成SQL. if标记 假设有这样一种需求:查询用户,当用户名不等于"admin"的时候,我们还需要密码为123456. 数据库中的数据为: MyBatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-
Mybatis中动态SQL,if,where,foreach的使用教程详解
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where set foreach mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 1.statement中直接定义使用动态SQL: 在statement中利用if 和 where 条件组合达到我们的需求,通过一个例子来说明: 原SQL语句
-
Oracle+Mybatis的foreach insert批量插入报错的快速解决办法
最近做一个批量导入的需求,将多条记录批量插入数据库中. 解决思路:在程序中封装一个List集合对象,然后把该集合中的实体插入到数据库中,因为项目使用了MyBatis,所以打算使用MyBatis的foreach功能进行批量插入.期间遇到了"SQL 命令未正确结束 "的错误,最终解决,记录下来供以后查阅和学习. 首先,在网上参考了有关Mybatis的foreach insert的资料,具体如下: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach
-
mybatis中foreach报错:_frch_item_0 not found的解决方法
发现问题 在mybatis的动态sql中最常见的错误就是使用,比如:_frch_item_0 not found There is no getter for property named 'states' in 'class com.xingguo.model.User' 等等. 一般在使用时出现问题是由以下几种错误使用方式造成的: 1.参数类型不是List,特别当参数为实体类,一个属性为list时,注意collection的名字. 2.遍历时属性的名字或者字段错误 3.多个参数时没有使用@p
-
MyBatis的foreach语句详解
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collectio
-
mybatis foreach批量插入数据:Oracle与MySQL区别介绍
下面给大家介绍mybatis foreach批量插入数据:Oracle与MySQL不同点: •主要不同点在于foreach标签内separator属性的设置问题: •separator设置为","分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) ,(v4,v5,v6) ,... •separator设置为"union all"分割时,最终拼接的代码形式为:insert into table
-
MyBatis实现批量插入数据,多重forEach循环
目录 批量插入数据,多重forEach循环 下面是一个实际应用 mybatis insert foreach 项目场景 批量插入数据,多重forEach循环 在业务开发过程中,遇到批量插入时,需要进行多重forEach循环的情况. 下面是一个实际应用 public class SysRoleData extends DataEntity<SysRoleData> { private static final long serialVersionUID = 1L; private S
-
MySQL通过函数存储过程批量插入数据
目录 数据库 mysql批量插入数据函数存储过程 附:MySQL通过函数批量插入数据 总结 数据库 mysql批量插入数据函数存储过程 -- 1 批量插入数据 -- 1.1 创建表 CREATE TABLE `dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, ceo INT NULL , PRIMARY KEY
-
利用MySqlBulkLoader实现批量插入数据的示例详解
目录 介绍 1.将List转化为DataTable 2.将DataTable转换为标准的CSV文件 3.CSV文件导入数据到数据库 4.使用MySqlBulkLoader批量插入数据 5.完整的代码 介绍 最近在项目中遇到插入数据瓶颈,几万.几十万.几百万的数据保存到MYSQL数据库,使用EF插入数据速度非常慢,数据量非常大时EF插入需要几十分钟,甚至几个小时,这样子的速度肯定不是我们所期望的. 后面经过了解与研究发现MySqlBulkLoader,可以批量将数据插入到数据库并且速度上面远远优于
-
Java实现mybatis批量插入数据到Oracle
最近项目中遇到一个问题:导入数据到后台并将数据插入到数据库中,导入的数据量有上万条数据,考虑采用批量插入数据的方式: 结合网上资料,写了个小demo,文章末尾附上demo下载地址 1.新建项目:项目目录结构如下图所示,添加相应的jar包 2.新建数据库表:ACCOUNT_INFO CREATE TABLE ACCOUNT_INFO ( "ID" NUMBER(12) NOT NULL , "USERNAME" VARCHAR2(64 BYTE) NULL , &q
-
MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)
一.mybatis批量插入数据到Oracle中的两种方式: 第一种: <insert id="addList" parameterType="java.util.List" useGeneratedKeys="false"> INSERT ALL <foreach item="item" index="index" collection="list"> INTO
-
Oracle + Mybatis实现批量插入、更新和删除示例代码
前言 Mybatis是web工程开发中非常常用的数据持久化的框架,通过该框架,我们非常容易的进行数据库的增删改查.数据库连接进行事务提交的时候,需要耗费的资源比较多,如果需要插入更新的数据比较多,而且每次事务只提交一条数据,会造成非常大的数据库资源浪费,导致数据库性能.系统性能大幅度下降. 关于mybatis的批量插入,网上的多数示例多半是关于MySQL数据库的,关于Oracle数据库的例子比较少.本文将给大家介绍关于Oracle+Mybatis批量插入.更新和删除的相关内容,下面话不多说了,来
-
如何在mybatis中向BLOB字段批量插入数据
最近接手一个需求,需要用xxl-job定时任务同步三方库中新增的数据,粗略一看挺得意,以为一两小时就搞定了,但事与愿违,编码两小时却被一个BLOB字段玩了一下午. 每次获取50条数据过来,每条数据中有一个字段是BLOB类型的图片,需求也要将图片放入数据库(个人不建议这么玩,生产上千万的数据会造成数据库很臃肿,建议放到ftp或者minio上比较好),字段中的图片过来时已经被转换成了base64的格式,在往数据库批量插入时,数据库BLOB字段对应的实体使用byte[],程序执行时报了如下错误: or
-
MyBatis批量插入数据的三种方法实例
目录 前言 准备工作 1.循环单次插入 2.MP 批量插入 ① 控制器实现 ② 业务逻辑层实现 ③ 数据持久层实现 MP 性能测试 MP 源码分析 3.原生批量插入 ① 业务逻辑层扩展 ② 数据持久层扩展 ③ 添加 UserMapper.xml 原生批量插入性能测试 缺点分析 解决方案 总结 前言 批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 MyBat
-
MYSQL开发性能研究之批量插入数据的优化方法
一.我们遇到了什么问题 在标准SQL里面,我们通常会写下如下的SQL insert语句. INSERT INTO TBL_TEST (id) VALUES(1); 很显然,在MYSQL中,这样的方式也是可行的.但是当我们需要批量插入数据的时候,这样的语句却会出现性能问题.例如说,如果有需要插入100000条数据,那么就需要有100000条insert语句,每一句都需要提交到关系引擎那里去解析,优化,然后才能够到达存储引擎做真的插入工作. 正是由于性能的瓶颈问题,MYSQL官方文档也就提到了使用批
随机推荐
- MyBatis批量添加、修改和删除
- mysql 分页优化解析
- XML轻松学习手册(3)XML的术语
- windows2003一句话开3389的vbs代码
- Java数据类型转换详解
- js选择并转移导航菜单示例代码
- PHP 日,周,月点击排行统计
- JS路由跳转的简单实现代码
- python 随机数使用方法,推导以及字符串,双色球小程序实例
- 使用FSO把文本信息导入数据库
- 简单实用jquery版三级联动select示例
- jquery 无限级联菜单案例分享
- java selenium教程环境搭建方法
- php学习之变量的使用
- 浅谈Spring解决jar包依赖的bom
- iOS开发商品页中banner中点击查看图片
- FileZilla FTP Server 安全加固图文教程
- Java网络编程之TCP通信完整代码示例
- mysql 8.0.17 安装图文教程
- Python读写文件模式和文件对象方法实例详解