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)))
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27111.html