基于mybatis向oracle中插入数据的性能对比
数据库表结构:

逐条插入sql语句:
<insert id="insert" parameterType="com.Structure">
INSERT INTO
STRUCTURE(
id,
structureNAME,
PARENTID,
structureType,
description,
deptId,
propertyCompanyId,
sort,
communityId)
VALUES(
#{id,jdbcType=VARCHAR},
#{structureName,jdbcType=VARCHAR},
#{parentId,jdbcType=VARCHAR},
#{structureType,jdbcType=NUMERIC},
#{description,jdbcType=VARCHAR},
#{deptId,jdbcType=VARCHAR},
#{propertyCompanyId,jdbcType=VARCHAR},
#{sort,jdbcType=VARCHAR},
#{communityId,jdbcType=VARCHAR})
</insert>
批量插入sql语句:
<insert id="insertBatch" parameterType="java.util.List">
BEGIN
<foreach collection="list" item="item" index="index"
separator=";">
INSERT INTO
STRUCTURE(
id,
structureNAME,
PARENTID,
structureType,
description,
deptId,
propertyCompanyId,
sort,
communityId)
VALUES
(
#{item.id,jdbcType=VARCHAR},
#{item.structureName,jdbcType=VARCHAR},
#{item.parentId,jdbcType=VARCHAR},
#{item.structureType,jdbcType=NUMERIC},
#{item.description,jdbcType=VARCHAR},
#{item.deptId,jdbcType=VARCHAR},
#{item.propertyCompanyId,jdbcType=VARCHAR},
#{item.sort,jdbcType=VARCHAR},
#{item.communityId,jdbcType=VARCHAR})
</foreach>
;END ;
</insert>
性能测试结果:
| 数量级 | 批量插入耗时(ms) | 逐条插入耗时(ms) |
| 10 | 50 | 68 |
| 100 | 197 | 257 |
| 1600 | 1671 | 33384 |
没想到到千级别的数量级就已经有如此巨大的耗时差别。
不知道是否有写法,以及数据库类型上的影响,暂时做个记录供自己参考。
基于mybatis向oracle中插入数据的性能对比的更多相关文章
- MyBatis在Oracle中插入数据并返回主键的问题解决
引言: 在MyBatis中,希望在Oracle中插入数据之时,同一时候返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle. Spring 3.2 SQL Snipp ...
- [oracle] 如何使用myBatis在数据库中插入数据并返回主键
在MyBatis中,希望在Oracle中插入数据的同时返回主键值,而非插入的条数. ① oracle使用 selectKey. U_USER_INFO_SEQ 是在数据库中定义好的这张表关联的序列se ...
- 使用mybatis向oracle数据库插入数据异常
遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...
- hibernate在Oracle中插入数据,默认字段被设置为null的问题解决
参考内容: http://blog.sina.cn/dpool/blog/s/blog_90629d5301014a5w.html 在数据库中一个字段的默认值为1,但是在插入数据后,本来该字段为空,值 ...
- 向oracle中插入date时,持久层sql怎么写???
public class EmpDao { public void addEmp(Emp emp) throws SQLException { QueryRunner runner = new Que ...
- for循环往Oracle中插入n条数据,主键自增
1.主键自增实现方法:http://www.cnblogs.com/Donnnnnn/p/5959871.html 2.for循环往Oracle中插入n条数据 BEGIN .. loop insert ...
- 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据
向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用 ...
- 通过mybatis向数据库中插入日期数据
遇到的问题: 通过mybatis向数据库中插入日期格式数据,发现只有年月日, 没有小时分钟和秒 当你想在实体类中使用java.util.Date类型,而且还想在数据库中保存时分秒时, 解决办法: 你可 ...
随机推荐
- awk 新手入门笔记
转自:http://www.habadog.com/2011/05/22/awk-freshman-handbook/ awk新手入门笔记 @作者 : habadog@邮箱 : habadog1203 ...
- Light Oj - 1134 Be Efficient
题目传送门:Be Efficient 题意:输入n和m,然后输入有n个元素的一个序列,问有多少个子序列元素的和能整除m. 思路:求前缀和,利用一个前缀的一个定理求解. 前缀和的一个定理是:每次求的前缀 ...
- 『REM』手机屏幕适配
function adapt(designWidth, rem2px){ var d = window.document.createElement('div'); d.style.width = ' ...
- 【CodeCraft-19 and Codeforces Round #537 (Div. 2) C】Creative Snap
[链接] 我是链接,点我呀:) [题意] 横坐标1..2^n对应着2^n个复仇者的基地,上面有k个复仇者(位置依次给出). 你是灭霸你要用以下方法消灭这k个复仇者: 一开始你获取整个区间[1..2^n ...
- nyoj_42_一笔画问题_201403181935
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- hdu_1029-Ignatius and the Princess IV_201310180916
Ignatius and the Princess IV Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32767 K ( ...
- Java中处理线程同步
引自:http://blog.csdn.net/aaa1117a8w5s6d/article/details/8295527和http://m.blog.csdn.net/blog/undoner/1 ...
- LINUX 内核 图 外国牛人
http://duartes.org/gustavo/blog/ http://blog.csdn.net/drshenlei
- HDU 4363
这题是记忆化搜索很容易想到,但状态却不好设 dp[i][j][u][d][l][r][k].对于矩形为i*j,它的四周的颜色分别为u,d,l,r,横竖切的状态为k的种数. 其中要注意一个问题是,停止不 ...
- Loadrunner | 录制脚本时弹不出IE的解决办法
Loadrunner在录制脚本的时候有时候会遇到弹不出IE的问题,那怎么解决呢?别急,按照以下几个步骤操作,一般就可以解决这个问题. 1. IE浏览器取消勾选[启用第三方浏览器扩展] 启动IE,从[工 ...