轉:ORACLE的JDBC連接方式:OCI和THIN

oracle的jdbc連接方式:oci和thin

??? oci和thin是Oracle提供的兩套Java訪問Oracle數據庫方式。

??? thin是一種瘦客戶端的連接方式,即采用這種連接方式不需要安裝oracle客戶端,只要求classpath中包含jdbc驅動的jar包就行。thin就是純粹用Java寫的ORACLE數據庫訪問接口。
oci是一種胖客戶端的連接方式,即采用這種連接方式需要安裝oracle客戶端。oci是Oracle Call Interface的首字母縮寫,是ORACLE公司提供了訪問接口,就是使用Java來調用本機的Oracle客戶端,然后再訪問數據庫,優點是速度 快,但是需要安裝和配置數據庫。

???? 從相關資料可以總結出以下幾點:
1. 從使用上來說,oci必須在客戶機上安裝oracle客戶端或才能連接,而thin就不需要,因此從使用上來講thin還是更加方便,這也是thin比較常見的原因。?
2. 原理上來看,thin是純java實現tcp/ip的c/s通訊;而oci方式,客戶端通過native java method調用c library訪問服務端,而這個c library就是oci(oracle called interface),因此這個oci總是需要隨著oracle客戶端安裝(從oracle10.1.0開始,單獨提供OCI Instant Client,不用再完整的安裝client)?
3. 它們分別是不同的驅動類別,oci是二類驅動, thin是四類驅動,但它們在功能上并無差異。

??? 從使用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%jdbclibclasses12.jar加到CLASSPATH環境變量里.也可以把classes12.jar拷貝到tomcat的commanlib目錄下。  
對于windows系統并使用oracle的即時客戶端時(假定即時客戶端解壓在d盤):  
1. 把d:instantclient_10_2加到PATH環境變量  
2. 把d:instantclient_10_2classes12.jar加到CLASSPATH環境變量里.也可以把classes12.jar拷貝到tomcat的commanlib目錄下。  


對于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的commanlib目錄下。

  
對于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的commanlib目錄下。

  
假如一個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)))即可。

來自:?http://hi.baidu.com/anboqing/blog/item/5a7b49f4e36fb57ddcc4744a.html

?

轉載于:https://www.cnblogs.com/toSeeMyDream/p/5539736.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255185.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255185.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255185.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟工網絡15個人閱讀作業2——提問題

提出問題 快速通讀教材《構建之法》,并參照提問模板,提出5個問題。 問題一: p83有一段話: 兩人在一起合作,自然會出現不同意見,每個人都有自己的想法,在兩個人平等合作的情況下,不存…

HALCON示例程序count_pellets.hdev分割豆子,基本形態學的使用

HALCON示例程序count_pellets.hdev分割豆子,基本形態學的使用 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘pellets’) dev_close_window () get_image_size (Image, Width, Height) dev_open_window…

絕對路徑VS相對路徑

絕對路徑:不必贅述,就是從盤符開始寫直到找到你所需要的文件為止,把所有的目錄寫完整即可。但是在做網站的時候絕對不推薦用絕對路徑,因為不可能服務器中的路徑和在做設計時候所用的電腦的路徑一致,也不可能說在服務器…

四、極大似然參數估計

四、極大似然參數估計 此篇博文,玉米將和大家分享一下“張氏標定”除幾何推導外的另外一大精髓:參數估計。 張教授在大作“A Flexible New Technique for Camera Calibration”中的原話如下:” The above solution is obtained through minim…

xtrabackup安裝使用

2019獨角獸企業重金招聘Python工程師標準>>> 【MySQL】xtrabackup安裝使用 拾荒者charley 關注 2018.03.19 09:19 字數 186 閱讀 17評論 0喜歡 0 前言:說到MySQL備份,主要采用的方法無非就是mysqldump/mysqldumper以及我們今天要說的熱備利器…

HALCON示例程序crystal.hdev通過局部閾值處理和區域處理提取六角形晶體

HALCON示例程序crystal.hdev通過局部閾值處理和區域處理提取六角形晶體 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_close_window () dev_update_window (‘off’) read_image (Image, ‘crystal’) get_image_size (Image, Width, Height) dev_ope…

2017/3/10 morning

轉載于:https://www.cnblogs.com/bgd140206325/p/6529497.html

六、張正友標定法小結

六、張正友標定法小結 這一博文,是玉米后補上的。因為覺得前面用了三篇博文來描述張氏標定法,略顯散亂。在這里總結一下,使條理清晰一點。另外關于張氏標定所得參數也還有兩點需要澄清。下面這個總結,其實也是在“A Flexible New …

SqlServer圖形數據庫初體驗

SQL Server2017新增了一個新功能叫做圖形數據庫。圖形指的拓撲圖形,是一些Node表和Edge表的合集,Node對應關系數據庫中的實體,比如一個人、一個崗位等,Edge表指示Node之前的關系,比如張三在經理崗位。圖形表比較適合用…

HALCON示例程序dem_trees.hdev提取樹

HALCON示例程序dem_trees.hdev提取樹 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_close_window () read_image (Mreut, ‘mreut_y’) read_image (MreutDem, ‘mreut_dgm_2.0’) get_image_size (Mreut, Width, Height) dev_open_window (0, 0, Wid…

Oracle CASE WHEN 用法介紹

1. CASE WHEN 表達式有兩種形式 --簡單Case函數 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END --Case搜索函數 CASEWHEN sex 1 THEN 男 WHEN sex 2 THEN 女 ELSE 其他 END 2. CASE WHEN 在語句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT grad…

Golang 處理 Json(二):解碼

golang 編碼 json 還比較簡單,而解析 json 則非常蛋疼。不像 PHP 一句 json_decode() 就能搞定。之前項目開發中,為了兼容不同客戶端的需求,請求的 content-type 可以是 json,也可以是 www-x-urlencode。然后某天前端希望某個后端…

五、畸變矯正—讓世界不在扭曲

五、畸變矯正—讓世界不在扭曲 這篇博文所要講述的內容,是標定的主要用途之一:矯正攝像機的畸變。對于圖像畸變矯正的方法,張正友教授也在其大作“A Flexible New Technique forCamera Calibration”中給出。 玉米在這里先為大家介紹一下&…

第二階段個人沖刺08

昨天做了什么? 解決新建項目時會遇到“Your android sdk is out of date or is missing templates”的問題,,實現學生交流區,只有學生和管理員有權查看,教師無權查看的功能 今天要做什么? 實現學生交流區&a…

HALCON示例程序distance_transform.hdev通過distance_transform檢測線的缺陷

HALCON示例程序distance_transform.hdev通過distance_transform檢測線的缺陷 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_close_window () dev_open_window (0, 0, 400, 400, ‘black’, WindowHandle)通過一系列的坐標點生成多邊形像素輪廓 gen_re…

java面試-Java并發編程(二)——重排序

當我們寫一個單線程程序時,總以為計算機會一行行地運行代碼,然而事實并非如此。 什么是重排序? 重排序指的是編譯器、處理器在不改變程序執行結果的前提下,重新排列指令的執行順序,以達到最佳的運行效率。 重排序分類 …

《MySQL必知必會》[01] 基本查詢

《MySQL必知必會》(點擊查看詳情)1、寫在前面的話這本書是一本MySQL的經典入門書籍,小小的一本,也受到眾多網友推薦。之前自己學習的時候是啃的清華大學出版社的計算機系列教材《數據庫系統概論》,基礎也算是半罐水&am…

(七)立體標定與立體校正 【計算機視覺學習筆記--雙目視覺幾何框架系列】

七、立體標定與立體校正 這篇博文中,讓玉米和大家一起了解一下,張氏標定是怎樣過渡到立體標定的?在這里主要以雙目立體視覺進行分析。對于雙目立體視覺,我們有兩個攝像頭。它們就像人的一雙眼睛一樣,從不同的方向看世界…

HALCON示例程序edge_segments.hdev提取連續的邊緣段

HALCON示例程序edge_segments.hdev提取連續的邊緣段 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () dev_close_window () read_image (Image, ‘mreut’) get_image_size (Image, Width, Height) dev_open_window_fit_image (Image, 0, 0…

讓 jQuery UI draggable 適配移動端

背景: 在移動端,本人要實現對某個元素的拖動,想到使用 jQuery UI 的 draggable 功能。但是發現此插件的拖動只支持PC端,不支持移動端。 原因: 原始的 jQuery UI 里,都是mousedown、mousemove、mouseup來描述…