Linux系統下的Oracle資料庫程式設計詳解
Linux系統下的Oracle資料庫程式設計詳解
來自:linux.ccidnet.com
摘要:本文探討了在Linux作業系統下用C和Java語言訪問Oracle資料庫的2種方法,並給出了相應的例程原始碼。
關鍵詞:Oracle;Pro*C;JDBC。
1.引言
由於PL/SQL不能用來開發面向普通使用者的應用程式,必須藉助其他語言或開發工具。在Linux作業系統下應該用什麼語言或開發工具來進行Oracle資料庫應用的開發呢?本文將介紹2種方案:Pro*C、JDBC。而另一種SQLJ方法,限於篇幅省略。
2. 環境設定
2.1 軟體環境
本文的實驗環境是在Red Hat Linux 8.0作業系統下,因為Oracle 9i要求至少512MB記憶體,所以我們選擇Oracle 8.1.7.0.1作為資料庫環境。說明一點:Oracle 8i的典型安裝不包括Pro*C,需要在定製安裝方式下將開發工具中的Pro*C選中。我們選擇安裝JDK的版本是J2SE 1.4.1 For Linux,其實JDK 1.1.6以上版本都可以。
2.2 Oracle使用者的環境變數設定
為了方便,本文的操作都是以Oracle使用者登入的。在Oracle使用者的.bash_profile檔案中必須包含以下行:
#JAVA環境設定 |
2.3 建立實驗使用者和資料表
建立一個新的Oracle使用者test,然後在新使用者下建一個記錄學生成績的student表,該表很簡單,只有三個欄位:id、name、score。
$sqlplus system/manager |
向student表中新增一些實驗資料。
3.Pro*C程式設計
Oracle的Pro*C預編譯器是一個可以讓你在C語言源程式中嵌入SQL語句的程式設計工具。Pro*C預編譯器在預編譯過程中,將嵌 入的SQL語句轉換成對標準Oracle執行庫的呼叫,從而生成預編譯過的原始碼,然後再進行通常的編譯、連線後就可以執行了。Oracle Pro*c預編譯器使我們可以在應用程式中使用強大靈活的SQL,通過這個介面,我們就可以用我們的C語言程式直接訪問Oracle資料庫。
用Pro*c程式設計分為三步:
(1) 首先建立字尾名為.pc的內嵌SQL語句的C源程式檔案;
$vi stu.pc
(2) 對源程式stu.pc進行預編譯,生成單純的C源程式stu.c
$proc PARSE=NONE stu.pc
(3) 編譯該C程式,並加入Oracle的客戶端動態連結庫 ,生成可執行檔案stu
$gcc –o stu stu.c $ORACLE_HOME/lib/libclntsh.so
以下是stu.pc的源程式,該程式的功能是根據使用者輸入的ID號,查詢student表中學生的姓名和成績。
#include <stdio.h> |
在Pro*C中遍歷資料表中每一條記錄的方法是通過宣告遊標來實現的,下面的例程stu2.pc便是一個使用遊標的例子,其功能是顯示student表中的每一條記錄。
#include <stdio.h> |
4. JDBC程式設計
在Linux下用JDBC訪問Oracle資料庫主要有以下幾個技術要點:
(1) 註冊Oracle的JDBC驅動。有兩種方式,一種是呼叫class.forName方法:
Class.forName("oracle.jdbc.driver.OracleDriver");
另一種是呼叫DriverManager類的registerDriver方法:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
(2) 獲取Oracle資料庫的連線。也有兩種方式。一是呼叫OCI驅動程式,OCI驅動程式利用Java本地化介面(JNI),通過Oracle客戶端軟體與資料庫進行通訊。
Connection conn=DriverManager.getConnection |
另一種方式是呼叫Thin驅動程式。Thin驅動程式是純Java驅動程式,它直接與資料庫進行通訊。
conn=DriverManager.getConnection |
為了獲得最高的效能,Oracle公司建議在客戶端軟體的開發中使用OCI驅動程式。
(3) 建立Statament和結果集物件,執行SQL語句,結果返回到結果集。
Statement pstmt=conn.createStatement(); |
(4) 處理結果集,顯示資料。
以下是遍歷student資料表的Java源程式Stu.java,源程式中包含了兩種註冊Oracle驅動的方式,以及OCI和Thin兩種連線資料庫的方法(因程式中不可能同時使用兩種方法,所以另一種方法被註釋)。
/* 匯入Java類 */ |
5. 結束語
從Oracle公司的產品策略和發展趨勢來看,Java將成為Oracle資料庫最有力的工具。Oracle公司在Oracle 8i中引入JVM,並在Oracle 9i中已經發展得極為成熟。這使得我們不僅可以利用JDBC和SQLJ訪問Oracle資料庫,也可以在Oracle的PL/SQL中執行用Java編寫 的儲存過程和函式,兩者的結合是雙向和無縫的。Java使Oracle正在成為一個平臺無關的資料庫,正如Oracle公司的發展目標所說的那樣:沒有操 作系統,只有Oracle和Internet。
參考文獻:
[1]Bjarki Holm,John Carnell,康博 譯. Oracle 9i Java 程式設計. 清華大學出版社,2002.
[2]Steve Bobrowski, 劉藝 等譯. Oracle8i for Linux實用指南. 機械工業出版社,2001.
相關文章
- LINUX系統程式設計 SWAP原理以及和資料庫(MYSQL ORACLE)關係Linux程式設計資料庫MySqlOracle
- ORACLE 資料庫審計詳解Oracle資料庫
- 超大型Oracle資料庫應用系統的設計方法(下)UVOracle資料庫
- Linux+Informix後臺資料庫系統程式設計設定(轉)LinuxORM資料庫程式設計
- 資料庫:系統設計的核心資料庫
- 資料庫系統設計概述資料庫
- Linux系統共享庫程式設計(轉)Linux程式設計
- Linux系統下資料庫有哪些?Linux資料庫
- 達夢資料庫統計資訊詳解資料庫
- 超大型Oracle資料庫應用系統的設計方法Oracle資料庫
- 【Database】AIX系統下跟蹤開銷大的Oracle資料庫程式DatabaseAIOracle資料庫
- 資料庫設計的 6 個階段詳解資料庫
- 資料庫系統設計:分割槽資料庫
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Linux或UNIX系統下oracle資料庫exp自動備份LinuxOracle資料庫
- Oracle資料庫的資料統計(Analyze)Oracle資料庫
- linux系統程式設計之程式(八):守護程式詳解及建立,daemon()使用Linux程式設計
- Oracle資料庫PL/SQL快捷鍵設定詳解Oracle資料庫SQL
- MFC下CSocket程式設計詳解程式設計
- 詳解oracle資料庫閃回Oracle資料庫
- oracle 資料庫ASM功能詳解Oracle資料庫ASM
- 部落格系統 - 資料庫設計(三)資料庫
- 進銷存系統資料庫設計資料庫
- 刪除linux下的oracle資料庫LinuxOracle資料庫
- linux下oracle資料庫的安裝LinuxOracle資料庫
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 【配置上線】Oracle資料庫Linux系統下安裝(圖形介面)Oracle資料庫Linux
- 詳解ORACLE資料庫的分割槽表Oracle資料庫
- 【Oracle-資料庫概念】-Oracle checkpoint詳解Oracle資料庫
- 完全手冊:Linux系統下C程式開發詳解LinuxC程式
- Linux系統殭屍程式詳解Linux
- C#下資料庫程式設計(二) (轉)C#資料庫程式設計
- LINUX下為ORACLE資料庫設定大頁--hugepageLinuxOracle資料庫
- 【資料庫設計】資料庫的設計資料庫
- MFC下CSocket程式設計詳解(轉)程式設計
- oracle資料庫的建模設計案例Oracle資料庫
- 【系統設計】分散式鍵值資料庫分散式資料庫
- 資料庫課程設計-宿舍管理系統資料庫