基于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类型,而且还想在数据库中保存时分秒时, 解决办法: 你可 ...
随机推荐
- ZOJ 3180 Number Game(模拟,倒推)
题目 思路: 先倒推!到最后第二步,然后: 初始状态不一定满足这个状态.所以我们要先从初始状态构造出它出发的三种状态.那这三种状态跟倒推得到的状态比较即可. #include<stdio.h&g ...
- 洛谷——P1896 [SCOI2005]互不侵犯
P1896 [SCOI2005]互不侵犯 状压DP入门题 状压DP一般需要与处理状态是否合法,节省时间 设定状态dp[i][j][k]表示第i行第j个状态选择国王数为k的方案数 $dp[i][j][n ...
- 【codeforces 509B】Painting Pebbles
[题目链接]:http://codeforces.com/contest/509/problem/B [题意] 给n鹅卵石染色; 有k种颜色可供选择; 问你有没有染色方案; 使得各个堆的鹅卵石里面,第 ...
- BNUOJ 1021 信息战(七)——情报传递
信息战(七)——情报传递 Time Limit: 3000ms Memory Limit: 262144KB 64-bit integer IO format: %lld Java clas ...
- noip模拟赛 gcd
题目更正:输出的a<b. 分析:这是一道数学题,范围这么大肯定是有规律的,打个表可以发现f(a,b)=k,a+b最小的a,b是斐波那契数列的第k+1项和k+2项.矩阵快速幂搞一搞就好了. #in ...
- Surround the Trees HDU 1392 凸包
Problem Description There are a lot of trees in an area. A peasant wants to buy a rope to surround a ...
- HDU 4544
贪心算法+优先队列. 很明显是应当先消灭blood值大的,那么注意到,对于少blood值的,能灭大blood值的箭必定能消灭小blood值的,所以,可以先排序,在消灭一个blood值的时候,选择一个小 ...
- (二)模板引擎之Velocity脚本基本的语法全
velocity velocity三种reference 变量:对java对象的一种字符串化表示,返回值调用了java的toString()方法的结果. 方法:调用的是对象的某个方法. ...
- WEB开发面试题
1.HTML的全称: 2.HTML的结构: 3.经常使用标签: 4.CSS的全称: 5.CSS的作用: 6.CSS中创建Class的语法: ...
- leetcode第一刷_Convert Sorted Array to Binary Search Tree
晕.竟然另一样的一道题.换成sorted array的话.找到中间位置更加方便了. TreeNode *sortTree(vector<int> &num, int start, ...