程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Java程序使用OCI驅動連接Oracle數據庫

Java程序使用OCI驅動連接Oracle數據庫

編輯:Oracle數據庫基礎

摘要:配置Java web應用使用OCI驅動來訪問oracle數據庫,如果在tomcat下有多個應用,且每個應用都要訪問Oracle數據庫時的注意項事。Oracle的即時客戶端配置等。

  公司各種產品的前端、後端差不多都是用java開發的Web應用且運行在tomcat裡。根據Oracle的說法,Java程序連接Oracle數據庫時,用oci驅動要比用thin驅動性能好些。主要的區別是使用thin驅動時,不需要安裝oracle的客戶端,而使用oci時則要安裝Oracle的客戶端。

  從使用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%\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系統並使用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的comman\lib目錄下。

  對於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的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)))

  即可  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved