数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2024年05月29日
 
Java程序使用OCI驱动连接Oracle数据库

Java程序连接oracle数据库时用oci驱动要比用thin驱动性能好些主要的区别是使用thin驱动时不需要安装oracle的客户端而使用oci时则要安装oracle的客户端

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

jdbcoraclethin@shdb

改成

jdbcoracleoci@shdb

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

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

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

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

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

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

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

把d\instantclient__加到PATH环境变量

把d\instantclient__\classesjar加到CLASSPATH环境变量里也可以把classesjar拷贝到tomcat的comman\lib目录下

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

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

exprot ORACLE_HOME=/u/app/oracle/product/

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

把classesjar拷贝到tomcat的comman\lib目录下

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

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

exprot ORACLE_HOME=/instantclient__

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

把instantclient__目录下的classesjar拷贝到tomcat的comman\lib目录下

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

使用oracle即时客户端是本地服务名的建立可以在目录instantclient__下建立tnsnamesora下添加连接串

SHDB =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = )))

(CONNECT_DATA =(SERVICE_NAME = shdb)))

上一篇:oracle中的数据库乱码的原因与解决

下一篇:影响性能的测试报告(数据库版)