`
log_cd
  • 浏览: 1098612 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java程序使用OCI驱动连接Oracle数据库

阅读更多
   根据oracle的说法,java程序连接oracle数据库时,用oci驱动要比用thin驱动性能好些。主要的区别是使用thin驱动时,不需要安装oracle的客户端,而使用oci时则要安装oracle的客户端。

  从使用thin驱动切换到oci驱动在配置来说很简单,只需把连接字符串java:oracle:thin:@hostip:1521:实例名换为java:oracle:oci@本地服务名即可。如:

  从jdbc:oracle:thin:@10.1.1.2:1521:shdb改成jdbc:oracle:oci8:@shdb

  但这里这台机需安装oracle数据库的客户端并配置本地服务名,同时还需指定NLS_LANG环境变量,NLS_LANG环境变量是用来控制客户端在显示oracle数据库的数据时所用的字符集和本地化习惯。通常把NLS_LANG的字符集部分指定为数据库所用的字符集则就不会存在java显示的乱码问题了。

  对于oracle数据库客户端的安装,有二种选择,一是老实的用oracle数据库的安装光盘安装对应版本的oracle客户端。二是下载oracle提从的即时客户端,即时客户端是不用安装的,把下载包解压即可。

  要使java web正常的通过oci驱动访问oracle,还需要客户端正确的配置一下相关变量。主要如下:

  对于windows系统并使用oracle客户端时:

  1. 把%ORACLE_HOME%\lib加到PATH环境变量.

  2. 把%ORACLE_HOME%\jdbc\lib\classes12.jar加到CLASSPATH环境变量里.也可以把classes12.jar拷贝到tomcat的comman\lib目录下。

  对于windows系统并使用oracle的即时客户端时(假定即时客户端解压在d盘):

  1. 把d:\instantclient_10_2加到PATH环境变量

  2. 把d:\instantclient_10_2\classes12.jar加到CLASSPATH环境变量里.也可以把classes12.jar拷贝到tomcat的comman\lib目录下。

  对于linux系统并使用oracle客户端时:

  1. 在使用tomcat的用户主目录下的.bash_profile文件中加入

  exprot ORACLE_HOME=/u01/app/oracle/product/9.2.0.4

  export LD_LIBRARY_PATH=$ORACLE_HOME/lib

  2. 把classes12.jar拷贝到tomcat的comman\lib目录下。

  对于linux系统并使用oracle即时客户端时:

  1. 在使用tomcat的用户主目录下的.bash_profile文件中加入

  exprot ORACLE_HOME=/instantclient_10_2

  export LD_LIBRARY_PATH=$ORACLE_HOME/lib

  2. 把instantclient_10_2目录下的classes12.jar拷贝到tomcat的common\lib目录下。

  如果一个tomcat下带了几个应用,且几个应用都要连接oracle数据库时,则要注意的时,不要在每个应用的WEB-INF/lib目录下放入 oracle的classes12.jar/zip文件。而应该把classes12.jar/zip文件放到tomcat的common/lib目录下。否则会出来ojdbclib9/10库重复加载的错误。

  使用oracle即时客户端是,本地服务名的建立可以在目录instantclient_10_2下建立tnsnames.ora下添加连接串,如:

SHDB =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.236)(PORT = 1521))) 
     (CONNECT_DATA =
        (SERVICE_NAME = shdb)
      )
)


总结:
  • 从使用上来说,oci必须在客户机上安装oracle客户端或才能连接,而thin就不需要,因此从使用上来讲thin还是更加方便,这也是thin比较常见的原因。
  • 原理上来看,thin是纯java实现tcp/ip的c/s通讯;而oci方式,客户端通过native java method调用c library访问服务端,而这个c library就是oci(oracle called interface),因此这个oci总是需要随着oracle客户端安装(从oracle10.1.0开始,单独提供OCI Instant Client,不用再完整的安装client)
  • 它们分别是不同的驱动类别,oci是二类驱动, thin是四类驱动,但它们在功能上并无差异。

分享到:
评论

相关推荐

    Java连接Oracle数据库的各种方法

    Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...

    Java用OCI驱连Oracle数据库的实现方法

    此配置指定了数据库服务器的IP地址、监听端口以及服务名称,是Java应用程序通过OCI驱动成功连接Oracle数据库的关键信息。 ### 结论 通过以上步骤,可以有效地在Java应用程序中利用OCI驱动与Oracle数据库建立高效的...

    Java连接Oracle数据库驱动(各种版本)

    Java classes when using the JDBC Thin and OCI client-side driver - with Java 7.0 VM. ojdbc6.jar Java classes when using the JDBC Thin and OCI client-side driver - with Java 6.0 VM. ojdbc5.jar Java ...

    java连接oracle数据库的驱动包

    在Java编程中,连接Oracle数据库通常需要特定的驱动程序,这就是所谓的JDBC驱动。Oracle公司提供了JDBC驱动,使得Java应用程序能够与Oracle数据库进行交互。本文将深入探讨如何使用Java连接Oracle数据库,以及如何...

    oracle11g连接文件oci.zip

    这个oci.zip文件包含的应该是Oracle 11g的OCI驱动或者相关的配置文件,用于PL/SQL Developer或其他支持OCI的应用程序建立到Oracle数据库的连接。 在PL/SQL Developer中,当你需要连接到Oracle数据库时,通常需要...

    Java连接Oracle数据库的各种方法.doc

    为了配置Java应用程序连接到Oracle数据库,需要以下步骤: 1. 安装Sun JDK。 2. 更新PATH环境变量,指向JDK的bin目录。 3. 设置CLASSPATH环境变量,指向JDK的lib目录和Oracle的JDBC接口。 对于不同接口类型的客户端...

    oracle 数据库java驱动 ojdbc

    Oracle数据库Java驱动,即ojdbc,是Oracle公司提供的用于Java应用程序连接Oracle数据库的关键组件。它遵循Java Database Connectivity (JDBC) API标准,使得Java开发者能够方便地在Oracle数据库上执行SQL语句、处理...

    java ee连接Oracle数据库的各种方法.doc

    JDBC KPRB 驱动由直接存储在数据库中的 Java 程序使用。 要配置 Java 使其可以通过 Oracle JDBC Drivers 连接到数据库,需要安装 Sun JDK、修改 PATH 环境变量、设置 CLASSPATH 环境变量、运行"java –version"来...

    JAVA连接Oracle数据库需要用到的jar文件

    Oracle JDBC驱动程序是Java应用程序与Oracle数据库交互的关键组件。本文将详细介绍如何使用Java连接Oracle数据库以及所需的JAR文件。 首先,Oracle提供了两种类型的JDBC驱动程序: 1. ** Thin Driver (纯Java驱动)...

    JAVA连接oracle数据库驱动包

    在Java编程中,连接Oracle数据库通常需要Oracle的JDBC驱动,也就是Java Database Connectivity驱动。Oracle JDBC驱动是Oracle公司提供的一系列允许Java应用程序与Oracle数据库进行交互的接口和类。本资源包含两个...

    C++连接oracle数据库

    本文将深入探讨如何使用C++来连接Oracle数据库,以及在这个过程中涉及的关键知识点。 首先,要实现C++与Oracle数据库的连接,我们需要一个接口库,这就是Oracle提供的OCI(Oracle Call Interface)。OCI是一个C语言...

    C3p0、Oracle数据库连接驱动、MySQL数据库连接驱动jar包.rar

    总结来说,"C3p0、Oracle数据库连接驱动、MySQL数据库连接驱动jar包.rar"包含的是用于Java应用程序与Oracle和MySQL数据库交互的关键组件。C3p0提供了高效的数据库连接池服务,而Oracle和MySQL的JDBC驱动则确保了Java...

    java连接oracle的数据库驱动

    Java连接Oracle数据库主要依赖于Oracle提供的JDBC驱动,也称为Oracle JDBC Driver。Oracle JDBC驱动有多种类型,包括 Thin、OCI(Oracle Call Interface)和JDBC-ODBC桥接。在本场景中,我们重点关注Thin驱动,因为...

    mysql连接Oracle数据库所需oci.dll资源

    在本案例中,我们关注的是MySQL如何连接到Oracle数据库,这通常涉及到使用特定的驱动程序和库。"oci.dll"是Oracle Call Interface (OCI) 的动态链接库,它是Oracle数据库提供的一种API,允许应用程序与Oracle数据库...

    java数据库驱动包

    MySQL JDBC驱动,也称为Connector/J,是Java应用程序连接到MySQL数据库的官方驱动。它实现了JDBC接口,使得Java开发者能够通过编写SQL语句来执行查询、插入、更新和删除等操作。安装JDBC驱动后,可以通过`Class.for...

    通过JDBC连接oracle数据库的十大技巧

    尽管Oracle官方推荐使用OCI驱动程序以获得更高的性能,但在实际应用中,经过多次测试验证,**Thin驱动程序往往能提供更好的性能表现**。这是因为Thin驱动程序减少了与本地库的交互,从而降低了系统开销。 #### 2. ...

    Oracle数据库驱动jar包

    Oracle数据库驱动jar包是Java应用程序连接Oracle数据库的关键组件,它提供了Java编程语言与Oracle数据库间的接口。在J2EE(Java 2 Platform, Enterprise Edition)开发中,这些jar包是必不可少的,因为它们包含了...

    oracle连接需要的驱动

    在Oracle 10g版本中,JDBC驱动可能包含在`ojdbc14.jar`或`ojdbc5.jar`文件中,这些文件通常是Java应用程序连接Oracle数据库所需的核心组件。如果"usefull"这个文件名是指的JDBC驱动包,那么它可能包含了上述某个版本...

Global site tag (gtag.js) - Google Analytics