`

oracle的jdbc连接方式:oci和thin[转]

阅读更多

转自:http://hi.baidu.com/125725385/blog/item/0c14f9012cfed11a738b6550.html

 

 oci和thin是Oracle提供的两套Java访问Oracle数据库方式。

    thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。thin就是纯粹用Java写的ORACLE数据库访问接口。
oci是一种胖客户端的连接方式,即采用这种连接方式需要安装oracle客户端。oci是Oracle Call Interface的首字母缩写,是ORACLE公司提供了访问接口,就是使用Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度 快,但是需要安装和配置数据库。

     从相关资料可以总结出以下几点:
1. 从使用上来说,oci必须在客户机上安装oracle客户端或才能连接,而thin就不需要,因此从使用上来讲thin还是更加方便,这也是thin比较常见的原因。
2. 原理上来看,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)
3. 它们分别是不同的驱动类别,oci是二类驱动, thin是四类驱动,但它们在功能上并无差异。

 

    从使用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%jdbclibclasses12.jar加到CLASSPATH环境变量里.也可以把classes12.jar拷贝到tomcat的commanlib目录下。  
对于windows系统并使用oracle的即时客户端时(假定即时客户端解压在d盘):  
1. 把d:instantclient_10_2加到PATH环境变量  
2. 把d:instantclient_10_2classes12.jar加到CLASSPATH环境变量里.也可以把classes12.jar拷贝到tomcat的commanlib目录下。  


对于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的commanlib目录下。

  
对于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的commanlib目录下。

  
假如一个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)))即可。

分享到:
评论

相关推荐

    数据库清洗产品ETL工具

    (如oracle的jdbc连接方式:oci和thin的选择) ETL任务支持多种数据源: 支持多种数据库Oracle,DB2,SQLServer, MySQL,SqlServer,Informix等。能 支持ODBC数据源,支持JNDI数据源,支持共享应用服务器数据源。 支持文本...

    ojdbc14.zip

    jdbc:oracle:thin:@<host>:<port1521>:<全局数据库名> 或 java:oracle:oci@<本地服务名> oracle的oci和thin连接的区别 1)从使用上来说,oci必须在客户机上安装oracle客户端或才能连接,而thin就不需要,因此从使用...

    Jsp JDBC连接MsSQL/MYSQL/Oracle各种数据库代码集.rar

    Jsp JDBC连接MsSQL/MYSQL/Oracle各种数据库代码集,采用多种方式连接各种常用的数据库:  1.连接ACCESS  http://127.0.0.1:8080/Access/access.jsp    2.连接SQL Server2000  ...

    Oracle JDBC Drivers release 11.2.0.3.0.rar

    - JDBC Thin Driver 11R2 100% Java client-side JDBC driver for use in client applications, middle-tier servers and applets. - JDBC OCI Driver 11R2 Client-side JDBC driver for use on a machine ...

    jdbc连接各种数据库

    3.连接Oracle 9i http://127.0.0.1:8080/Oracle/oracle9_thin.jsp //thin模式 http://127.0.0.1:8080/Oracle/oracle9_oci.jsp //OCI模式 4.连接MySQL http://127.0.0.1:8080/MySQL/mysql.jsp

    Oracle jdbc for 11g 最新版 驱动 ojdbc6dms.jar

     8.Thin和OCI的数据库启动和关闭。11R1提供了这样的方法来启动和关闭数据库。  9.新的工厂方法。Oracle JDBC 11R1 oracle.jdbc.OracleConnection提供了创建Oracle对象的工厂方法。  包括ARRAY, BFILE, DATE, ...

    JSP通过JDBC驱动各种数据库方法

    连接Oracle 9i http://127.0.0.1:8080/Oracle/oracle9_thin.jsp //thin模式 http://127.0.0.1:8080/Oracle/oracle9_oci.jsp //OCI模式4.连接MySQL http://127.0.0.1:8080/MySQL/mysql.jsp作者:蔡容森 Email:accp_...

    ojdbc7的jar包,工具类,请笑纳,本人亲测好用

    因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以dll方式提供的oci和服务器配置。 2、JDBC Thin: thin是for thin client...

    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 ...

    jdbc连接数据库的方式2

    三、以下列出了在使用JDBC来连接Oracle数据库时可以使用的一些技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能(系转载)。  1、在客户端软件开发中使用Thin驱动程序  在开发Java软件方面,Oracle...

    Oracle jdbc for 11g 最新版 驱动 ojdbc6.jar

     8.Thin和OCI的数据库启动和关闭。11R1提供了这样的方法来启动和关闭数据库。  9.新的工厂方法。Oracle JDBC 11R1 oracle.jdbc.OracleConnection提供了创建Oracle对象的工厂方法。  包括ARRAY, BFILE, DATE, ...

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

    在使用多年的Oracle公司的JDBC后,我积累了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。 1、在客户端软件开发中使用Thin驱动程序 在开发Java软件方面,Oracle的数据库提供了四种类型的...

    JDBC驱动包

    最新JDBC连接SQLServer2005,Oracle,其中的JTDS驱动包可以用来连接SQLServer2005和MySql. Oracle的连接包有两个,Classes12.jar可以用来OCI的方式连接,0jdbc14.jar可以用Thin的方式来连接,至于这二连接的区别可以...

    DBA需要的技能

    java(掌握)包括jdbc thin,oci等4类不同的连接方式,性能设置,一些中间件的知识 了解一些就够了 5. oracle performance tuning(范围很广) ocp performance book 下tom的书《Wrox - Expert one-on-one ...

Global site tag (gtag.js) - Google Analytics