oracle-java程序连接三种方式

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数据库源的配置,这种方式一般不太被采用**

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿与禅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值