oracle-java程序连接三种方式

来源:互联网 发布:mac电脑装windows10 编辑:程序博客网 时间:2024/05/18 14:11

OCI协议(oracle called interface)

OCI方式依赖于本地的动态链接库,客户端通过native java method调用c library访问服务端,而这个c library就是oci(oracle called interface),因此这个oci总是需要随着oracle客户端安装(从oracle10.1.0开始,单独提供OCI Instant Client,不用再完整的安装client),JDBC Oci 此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,通过本地动态连接库和Oracle进行套接字通讯,速度和安全性比较好,
url

jdbc:oracle:oci8:@shdb

配置
安装oracle数据库的客户端并配置本地服务名,同时还需指定NLS_LANG环境变量,NLS_LANG环境变量是用来控制客户端在显示oracle数据库的数据时所用的字符集和本地化习惯。通常把NLS_LANG的字符集部分指定为数据库所用的字符集,就不会存在java显示的乱码问题了。
对于oracle数据库客户端的安装,有二种选择,一是老实的用oracle数据库的安装光盘,安装对应版本的oracle客户端。二是下载oracle提取的即时客户端,即时客户端是不用安装的,把下载包解压即可。
要使java web正常的通过oci驱动访问oracle,还需要客户端正确的配置一下相关变量。主要如下:
windows
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
1、在使用tomcat的用户主目录下的.bash_profile文件中加入:
exprot ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
export LD_LIBRARY_PATH=ORACLEHOME/lib2classes12.jartomcatcomman\liblinux使oracle1使tomcat.bashprofileexprotORACLEHOME=/instantclient102exportLDLIBRARYPATH=ORACLE_HOME/lib
2、把instantclient_10_2目录下的classes12.jar拷贝到tomcat的comman\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)))

thin

纯java的数据库连接方式
Thin 这种驱动一般用在运行在WEB浏览器中的JAVA程序。通过Java sockets进行通信 ,因此不需要在使用JDBC Thin的客户端机器上安装客户端软件
thin方式是通过远程访问Oracle。
一般情况,OIC方式用于服务器端开发的数据库连接方式而thin方式可用于applet等需要远程访问数据库的方式。
原理上来看,thin是纯java实现tcp/ip的c/s通讯

url

1.普通SID方式
jdbc:oracle:thin:usernam/password@x.x.x.1:1521:SID

2.普通ServerName方式
jdbc:oracle:thin:username/password@//x.x.x.1:1522/ABCD

3.RAC方式
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.2)(PORT=1521)))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xxrac)))

JDBC-ODBC桥

JdbcOdbc桥方式依赖于本地ODBC数据库源的配置,这种方式一般不太被采用**

原创粉丝点击