- 浏览: 204204 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
liping0423:
这边文章 的很不错,拿去用了。谢谢
Oracle时间加减 -
Salyang:
黑莓软件还是很多的,而且我有整理,发布在我的站点里了,www. ...
BlackBerry手机常用软件(在8820中测试通过) -
bulktree:
应该有个清单吧
BlackBerry手机常用软件(在8820中测试通过) -
binyan17:
xkorey 写道那些软件都是什么功能?介绍下吧。
里面的软件 ...
BlackBerry手机常用软件(在8820中测试通过) -
xkorey:
那些软件都是什么功能?介绍下吧。
BlackBerry手机常用软件(在8820中测试通过)
原文:http://blog.itpub.net/post/37572/465011
测试java的insert 同使用9i以后的bulk Insert 的速度.
测试结果显示通过bulk Insert 速度相当的快.
100000条记录
insert ,---------------93秒
bulk insert -------------0.441秒
环境:
oracle 10.2.0.3 Windows 2000Server
java
代码:
SQL> desc a Name Type Nullable Default Comments ---- ------------ -------- ------- -------- ID INTEGER Y NAME VARCHAR2(20) Y bulk Insert 使用的类型及过程 create or replace type i_table is table of number(10); create or replace type v_table is table of varchar2(10); create or replace procedure pro_forall_insert(v_1 i_table,v_2 v_table) as c integer; begin forall i in 1.. v_1.count insert into a values(v_1(i),v_2(i)); end;
测试的java代码:
import java.io.*; import java.sql.*; import java.util.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.*; import oracle.jdbc.OracleTypes; import oracle.sql.*; import oracle.sql.ARRAY; import oracle.sql.ArrayDescriptor; import oracle.sql.STRUCT; import oracle.sql.StructDescriptor; import java.sql.Connection; import java.sql.DriverManager; import oracle.jdbc.OracleCallableStatement; public class testOracle { public testOracle() { Connection oraCon = null; PreparedStatement ps = null; Statement st = null; ResultSet rs = null; try { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException ex) { } oraCon = DriverManager.getConnection("jdbc:oracle:thin:@192.168.15.234:1521:ora10g", "imcs", "imcs"); oraCon.setAutoCommit(false); } catch (SQLException ex) { ex.printStackTrace(); } CallableStatement cstmt = null; oracle.sql.ArrayDescriptor a = null; oracle.sql.ArrayDescriptor b = null; if (1 == 1) { Object[] s1 = new Object[100000]; Object[] s2 = new Object[100000]; for (int i = 0; i < 100000; i++) { s1[i] = new Integer(1); s2[i] = new String("aaa").concat(String.valueOf(i)); } try { a = oracle.sql.ArrayDescriptor.createDescriptor("I_TABLE", oraCon); b = oracle.sql.ArrayDescriptor.createDescriptor("V_TABLE", oraCon); ARRAY a_test = new ARRAY(a, oraCon, s1); ARRAY b_test = new ARRAY(b, oraCon, s2); cstmt = oraCon.prepareCall("{ call pro_forall_insert(?,?) }"); cstmt.setObject(1, a_test); cstmt.setObject(2, b_test); long aaaa = System.currentTimeMillis(); System.out.println(System.currentTimeMillis()); cstmt.execute(); oraCon.commit(); System.out.println(System.currentTimeMillis() - aaaa); } catch (Exception e) { e.printStackTrace(); } } else { try { PreparedStatement oraPs = null; String oraInsertSql = "insert into a values(?,?)"; oraPs = oraCon.prepareStatement(oraInsertSql); long aaaa = System.currentTimeMillis(); System.out.println(System.currentTimeMillis()); for (int i = 0; i < 100000; i++) { oraPs.setInt(1, i); oraPs.setString(2, new String("aaa").concat(String.valueOf(i))); oraPs.executeUpdate(); } oraCon.commit(); System.out.println(System.currentTimeMillis() - aaaa); } catch (SQLException ex) { System.out.print("dddddd"); System.out.print(ex.getMessage()); } } try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String args[]) { testOracle a = new testOracle(); } private void jbInit() throws Exception { } };
发表评论
-
在Tomcat7中JNDI方式使用tomcat-jdbc连接池
2014-12-04 20:16 1529在tomcat中,jndi方式默认使用的是tomca ... -
Oracle导入导出
2014-11-12 12:01 7131. 使用expdp和impdp 命令导入导出 11g ... -
修改Oracle连接数
2014-09-27 20:57 841第一步,在cmd命令行,输入sqlplus 第二步, ... -
【转】JAVA23种设计模式
2013-03-01 18:18 1172设计模式主要分三个类型:创建型、结构型和行为型。 其中创建 ... -
用iframe做伪ajax上传文件通用版设计思路
2013-02-28 22:35 0在公司内部不能发布代码到外网,现在此写一下设计思路 ... -
【转】Open Flash Chart支持中文字体旋转最新编译(Version 2 Lug Wyrm Charmer)
2012-09-04 10:51 2217原文地址:http://u.hooto.com/guan ... -
Oracle维护常用脚本
2012-03-29 14:33 12361、查看表空间使用情况 SELECT B.FILE ... -
MYSQL常用命令
2012-02-14 23:34 8341.导出整个数据库mysqldump -u 用户名 -p ... -
图片延迟加载解决方法
2012-02-13 23:36 4597原文地址:http://blog.tianxiadiyichi ... -
ibatis批量处理+多表关联查询
2011-12-26 00:13 1359原文地址:http://blog.csdn.net/w4 ... -
Tomcat启动优化配置
2012-02-17 20:44 1535# set juli if [ -r "$C ... -
正则表达式元字符说明
2011-12-08 23:13 918元字符 描述 .点 匹配任何单个字符。例如正 ... -
数据库属性hibernate.dialect的设置
2011-12-04 22:40 949为数据库属性hibernate.dialect设置正确的 or ... -
uploadify解决在Chrome中上传HTTP error问题
2011-11-25 10:07 3050今天在做文件上传时,发现uploadify在IE中上传能成功 ... -
【转】玩转三种主流数据库(oracle,sql server,mysql)web翻页
2011-10-30 16:10 1498原文:http://blog.sina.c ... -
【转】SQL Server 2005无日志文件附加数据库
2011-10-18 00:16 997解决办法: 1、新建一个同名数据库。 2、停止数据库服 ... -
在ibatis中调用存储过程
2011-07-28 14:10 11381、配置文件,注意其中的jdbcType,这个不知道可以参考j ... -
JavaScript event KeyCode数字对应键盘大全
2011-06-28 00:08 1197keycode 8 = BackSpace Bac ... -
【转】BigDecimal常用计算方法
2011-06-26 12:57 1111import java.math.BigDecimal; ... -
【转】jQuery选择器总结
2011-06-25 00:04 845jQuery 的选择器可谓之强大无比,这里简单地总结一下 ...
相关推荐
Oracle是一个关系型数据库,它支持通过`BULK COLLECT INTO`和`FORALL`语句实现批量插入。在Java中,可以使用JDBC的`PreparedStatement`对象的`setBatch()`方法来设置一组SQL插入语句,然后调用`executeBatch()`执行...
Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用...
String Driver="oracle.jdbc.driver.OracleDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out....
在进行数据迁移之前,首先需要了解SQL Server与Oracle之间不同类型的数据类型的映射关系。下面是两种数据库管理系统之间的主要数据类型对应关系: | SQL Server Data Type | Oracle Data Type | |-----------------...
### 韩顺平玩转Oracle学习笔记知识点详解 #### 一、Oracle基本使用——基本命令 ##### 连接命令 - **`conn[ect]`**:此命令用于连接到Oracle数据库。语法如下: - `conn 用户名/密码@网络服务名 [as sysdba/...
2. 数据操纵:INSERT、UPDATE和DELETE语句用于插入、修改和删除数据,以及如何使用BULK COLLECT和FORALL进行批量操作。 3. 数据定义:CREATE、ALTER和DROP命令用于创建、修改和删除表、视图、索引、用户和角色等...
了解如何正确使用显式和隐式游标,以及如何利用FORALL语句进行批量操作,有助于在处理大数据集时减少资源消耗。 七、数据库安全与权限管理 Oracle提供了丰富的权限和角色机制,确保数据的安全性。理解用户、角色、...
12.4 与应用特点相匹配的解决方案 348 12.4.1 压缩索引 348 12.4.2 基于函数的索引 350 12.4.3 反转键索引 353 12.4.4 降序索引 354 12.5 管理问题的解决方案 355 12.5.1 不可见索引 355 12.5.2 虚拟索引 ...
- **JDBC-ODBC桥**:早期的一种驱动类型,现在已经很少使用。 - **部分Java驱动**:依赖于本地代码。 - **纯Java驱动**:完全由Java编写,无需额外的软件支持。 - **网络纯Java驱动**:客户端与服务器之间通过...
教材还会讲解如何使用BULK COLLECT和FORALL语句进行批量操作,提高效率。 6. **索引和视图**:学习如何创建和管理索引,优化查询性能,以及创建和使用视图来抽象数据库表的复杂性。 7. **包(Package)**:包是PL/...
在Java下进行Oracle开发,需要了解Oracle的数据类型、表的创建与管理、索引、视图、存储过程以及触发器等基本概念。 三、配置Oracle JDBC驱动 要连接到Oracle数据库,首先需要在项目中引入Oracle JDBC驱动,如ojdbc...
Class.forName("oracle.jdbc.driver.OracleDriver"); // 获取数据库连接 conn = DriverManager.getConnection("jdbc:oracle:thin:@172.16.225.170:1521:orcl", "scott", "tiger"); } catch ...
* 金仓数据库不支持批量插入insert all语法,解决办法:涉及insert all的内容全部兼容到非oracle数据库的处理逻辑分支下。 * 金仓数据库不支持table()关键字,解决办法:改为执行Mysql数据库类型的处理逻辑,相关...
### Oracle数据库学习知识点详解 #### 一、基本使用 ##### 1.1 常用命令 **1.1.1 Connect/Disconnect 数据库连接命令** - **Connect**: 使用 `connect` 命令可以连接到Oracle数据库。语法通常为 `connect ...
JDBC提供了数据库连接、数据查询、数据更新等功能,使得Java应用程序能够与多种类型的数据库进行无缝连接。 在JDBC中,数据库连接通常通过DriverManager类来建立。首先,我们需要在程序中加载相应的数据库驱动,这...
在Java应用程序中,可以使用JDBC(Java Database Connectivity)来调用Oracle中的存储过程。以下是一个简单的示例,展示了如何连接到Oracle数据库并调用存储过程。 ##### 1. 获取数据库连接 ```java import java....
new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver(driver); 3.加虚拟机参数jdbc.drivers -Djdbc.drivers=oracle.jdbc.driver.OracleDriver 4.从Jdk6.0以后要求,JDBC 4.0 Drivers ...
使用 JDBC 连接 Oracle 数据库,并根据操作类型执行相应的 SQL 语句。常见的操作有插入(Insert)、更新(Update)、删除(Delete)等。 - **插入操作**: ```java String sql = "INSERT INTO table_name (id, ...
MyBatis是一个强大的持久层框架,它允许开发者编写SQL查询,使用存储过程,并进行高级映射,无需手动处理JDBC代码和结果集的封装。在处理大量数据时,批量插入是一种提高性能的有效策略。本文将深入探讨MyBatis中...
JDBC是Java平台上的一个标准API,它允许Java程序与各种类型的数据库进行交互,包括Oracle、MySQL、SQL Server等。JDBC提供了一组接口和类,用于建立数据库连接、执行SQL语句以及处理查询结果。 要使用JDBC,我们...