oracle的jdbc驱动主要有下面三类:

1、JDBC OCI: oci是oracle call interface的缩写,此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以dll方式提供的oci和服务器配置。

2、JDBC Thin: thin是for thin client的意思,这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信,是纯java实现的驱动,因此不需要在使用JDBC Thin的客户端机器上安装orcale客户端软件,所以有很好的移植性,通常用在web开发中。

3、JDBC KPRB: 这种驱动由直接存储在数据库中的JAVA程序使用,如Java Stored Procedures 、triggers、Database JSP's。因为是在服务器内部使用,他使用默认或当前的会话连接来访数据库,不需要用户名密码等,也不需要数据库url。

在应用开发的时候,通常是用前面两种方式,下面是数据库url的写法:

jdbc:oracle:thin:@server ip: service

jdbc:oracle:oci:@service

看来oci的还更加简洁,ip可以省掉不写了,这是因为oci驱动通过客户端的native java methods来条用c library方式来访问数据库服务器,使用到了客户端的net manager里的数据库服务配置。

因为oci方式最终与数据库服务器通信交互是用的c library库,理论上性能优于thin方式,据说主要是体现在blob字段的存取上。

开发oracle经常用到的 pl sql dev使用的估计是oci方式,需要安装客户端,但也可以不安装,但是要抽出其中的oci相关的dll即jar包、注册环境变量、配置侦听文件等,详细步骤可参考这个链接http://blog.csdn.net/shenyc/archive/2009/10/22/4713991.aspx。

oracle在10g之后提供了精简客户端,安装的过程应该包括上面的那些工作。

How does one connect with the JDBC OCI Driver?

One must have Net8 (SQL*Net) installed and working before attempting to use one of the OCI drivers.

Code: [Copy to clipboard]

import java.sql.*;

class dbAccess {

public static void main (String args []) throws SQLException

{

try {

Class.forName ("oracle.jdbc.driver.OracleDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

Connection conn = DriverManager.getConnection

("jdbc:oracle:oci8:@ORA1", "scott", "tiger");

// or oci9 @Service, userid, password

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery (

"select BANNER from SYS.V_$VERSION"

);

while (rset.next())

System.out.println (rset.getString(1)); // Print col 1

stmt.close();

}

}

How does one connect with the JDBC KPRB Driver?

One can obtain a handle to the default or current connection (KPRB driver) by calling the OracleDriver.defaultConenction() method. Please note that you do not need to specify a database URL, username or password as you are already connected to a database session. Remember not to close the default connection. Closing the default connection might throw an exception in future releases of Oracle.

import java.sql.*;

Code: [Copy to clipboard]

class dbAccess {

public static void main (String args []) throws SQLException

{

Connection conn = (new

oracle.jdbc.driver.OracleDriver()).defaultConnection();

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery (

"select BANNER from SYS.V_$VERSION"

);

while (rset.next())

System.out.println (rset.getString(1)); // Print col 1

stmt.close();

}

}

======================================================

oracle驱动jdbc接口,ORACLE中三种类型的JDBC驱动相关推荐

  1. Java接口方法的三种类型

    Java接口方法的三种类型 接口中的方法分别有以下三种 普通方法:使用default修饰的接口方法,可以拥有方法体,实现类不需要重写,可以被实现类继承,该特性是Java8以后被提出: 静态方法:接口中 ...

  2. kettle中三种类型: 增量不裁剪,增量裁剪,全量

    (1)增量表,全量表,快照表 原图片来源: 什么是增量表,全量表,快照表 - 简书 https://www.jianshu.com/p/d53b44b15655 (2)裁剪不裁剪 参看: SQL TR ...

  3. python语言中有3种表示字符串的方式、单引号和_Python中三种类型的引号(单引号、双引号、三引号)...

    当向Python输入一个字符串时,要将字符串放到引号中,Python含有三种类型的引号: 单引号形式:'  ' 双引号形式:"  " 三引号形式:'''   ''' (三个单引号组 ...

  4. [转载] Python中三种类型的引号(单引号、双引号、三引号)

    参考链接: Python中的三引号 当向Python输入一个字符串时,要将字符串放到引号中,Python含有三种类型的引号: 单引号形式:'  ' 双引号形式:"  " 三引号形式 ...

  5. Python中三种类型的引号(单引号、双引号、三引号)

    当向Python输入一个字符串时,要将字符串放到引号中,Python含有三种类型的引号: 单引号形式:'  ' 双引号形式:"  " 三引号形式:'''   ''' (三个单引号组 ...

  6. oracle数据库备份方法主要有哪几种,Oracle数据库备份方法有哪三种?

    Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统.比如使用export实用程序导出数据库对象.使用Oracle备份数据库.使用O ...

  7. pl/sql中三种游标循环效率对比

    pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...

  8. php 5.3 连接mysql_php5.3.x5.4.x5.5.x连接mysql数据库的三种方式以及所用驱动

    php连接mysql的驱动支持 请使用mysqlnd php官方原生驱动.编译参数中需要加如下 ./configure --with-mysql=mysqlnd \--with-mysqli=mysq ...

  9. VMware vSphere中三种磁盘规格(厚置备延迟置零\厚置备置零\Thin Provision(精简置备))的解释说明

    本文转载自老管网络日志http://guanjianfeng.com/archives/1161297,如侵请联系删除. 在VMware vSphere中,不管是以前的5.1版本,或者是现在的6.5版 ...

最新文章

  1. JAVA---------华为机试------------提取不重复的整数
  2. 《系统集成项目管理工程师》必背100个知识点-32工作分解结构步骤
  3. SqlException (0x80131904): 将截断字符串或二进制数据。
  4. 眉骨高者为大贵之相_男人此处“高大”,大富大贵,前途不可限量!!
  5. centos 5.8 mysql_linux centos5.8装yum安装mysql
  6. bootstrap-table动态合并相同行和列的方法
  7. 冰河木马实验(V8.4)
  8. 计算机查看图片的打开方式,windows10电脑怎么在右键菜单打开方式添加照片查看器...
  9. 腾讯qq发起临时会话链接
  10. TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法
  11. File.separator是什么?
  12. Spring-boot通过redisTemplate使用redis(无须手动序列化)
  13. PTA - 数据库合集51
  14. PTC Mathcad Prime7.0,简单易用的用户界面
  15. 3D视觉检测:智能工业机器人从平面到立体的“视界”升级
  16. (转载)library cache lock和library cache pin到底是什么
  17. 山月大佬做了个极客时间返现平台及技术栈介绍
  18. 麒麟970让华为Mate10慧眼识物运动抓拍 人人秒变专业摄影大师
  19. 树莓 php mysql,树莓搭建Nginx+PHP7.0+mysql服务器
  20. java后端入门必备书籍

热门文章

  1. 计算机房的美女老师,陈桦(海口经济学院女教师)_百度百科
  2. 《NFL星计划》:巴尔的摩乌鸦·橄榄1号位
  3. 义乌网络公司有关APP推广的渠道及
  4. miniui隐藏div隐藏tr的方法
  5. Springboot毕设项目班费管理系统16me6(java+VUE+Mybatis+Maven+Mysql)
  6. 基于Qt的软件框架设计
  7. android数据库导入读取.db文件内容
  8. 【手拉手 带你准备电赛】April Tag标记跟踪(3D定位)详解
  9. Android中的“Application”,“Task”,“Activities”的关系
  10. RTL8198D 编译出现sk_pacing_shift_update未定义