更新時(shí)間:2022-12-12 11:17:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1485次
Oracle JDBC 驅(qū)動(dòng)程序的安裝是特定于平臺(tái)的。按照特定于平臺(tái)的文檔中要安裝的驅(qū)動(dòng)程序的安裝說(shuō)明進(jìn)行操作。
本節(jié)介紹驗(yàn)證 JDBC 驅(qū)動(dòng)程序的 Oracle 客戶端安裝的步驟。它假定您已經(jīng)安裝了您選擇的驅(qū)動(dòng)程序。
如果您已經(jīng)安裝了 JDBC Thin 驅(qū)動(dòng)程序,則無(wú)需在客戶端計(jì)算機(jī)上進(jìn)一步安裝(JDBC Thin 驅(qū)動(dòng)程序需要在數(shù)據(jù)庫(kù)計(jì)算機(jī)上運(yùn)行 TCP/IP 偵聽(tīng)器)。
如果您已經(jīng)安裝了JDBC OCI 驅(qū)動(dòng)程序,您還必須安裝Oracle 客戶端軟件。這包括 Net8 和 OCI 庫(kù)。
本節(jié)假定您已經(jīng)在系統(tǒng)上安裝了 Sun Microsystems Java 開發(fā)人員工具包 (JDK) (盡管也支持其他形式的 Java)。Oracle 提供與 JDK 1.2.x 版本或 JDK 1.1.x 版本兼容的 JDBC 驅(qū)動(dòng)程序。
安裝 Oracle JServer 產(chǎn)品會(huì)創(chuàng)建一個(gè)[ORACLE_HOME]/jdbc包含以下子目錄和文件的目錄:
demo/samples:該samples子目錄包含示例程序,包括如何使用 SQL92 和 Oracle SQL 語(yǔ)法、PL/SQL 塊、流、用戶定義類型、其他 Oracle 類型擴(kuò)展和 Oracle 性能擴(kuò)展的示例。
doc:該doc目錄包含有關(guān) JDBC 驅(qū)動(dòng)程序的文檔。
lib:該lib目錄包含.zip具有這些必需的 Java 類的文件:
classes12.zip包含用于 JDK 1.2.x 的類——除了 NLS 支持所需的類之外的所有 JDBC 驅(qū)動(dòng)程序類。
nls_charset12.zip包含 JDK 1.2.x 支持 NLS 所必需的類。
jta.zip并jndi.zip包含用于 JDK 1.2.x 的 Java 事務(wù) API 和 Java 命名和目錄接口的類。僅當(dāng)您將使用 JTA 功能進(jìn)行分布式事務(wù)管理或使用 JNDI 功能進(jìn)行命名服務(wù)時(shí),才需要這些。(這些文件也可以從 Sun Microsystems 網(wǎng)站獲得,但建議使用 Oracle 的版本,因?yàn)檫@些文件已經(jīng)過(guò) Oracle 驅(qū)動(dòng)程序的測(cè)試。)
classes111.zip包含與 JDK 1.1.x 一起使用的類——除了 NLS 支持所需的類之外的所有 JDBC 驅(qū)動(dòng)程序類。
classes111.zip還包含 Oracle 擴(kuò)展,允許您在 JDK 1.1.x 下對(duì)對(duì)象、數(shù)組和 LOB 使用 JDBC 2.0 功能。
nls_charset11.zip包含 JDK 1.1.x 支持 NLS 所必需的類。
nls_charset12.zip和 文件nls_charset11.zip提供對(duì)特定 NLS 字符集的支持。它們已從文件中分離出來(lái),classes*.zip以便在不需要完整的 NLS 支持的情況下為您提供排除字符集的選項(xiàng)。有關(guān)nls_charset12.zip和 的更多信息nls_charset11.zip,請(qǐng)參閱“NLS 支持和對(duì)象類型”.
readme.txt:該readme.txt文件包含有關(guān)驅(qū)動(dòng)程序的最新信息和特定于版本的信息,這些信息可能不在本手冊(cè)中。
檢查是否已創(chuàng)建并填充所有這些目錄。
本節(jié)介紹必須為 JDBC OCI 驅(qū)動(dòng)程序和 JDBC Thin 驅(qū)動(dòng)程序設(shè)置的環(huán)境變量,主要針對(duì) Sun Microsystems Solaris 和 Microsoft Windows NT 平臺(tái)。
您必須為已安裝的 JDBC OCI 或瘦驅(qū)動(dòng)程序設(shè)置CLASSPATH。根據(jù)您使用的是 JDK 1.2.x 版本還是 1.1.x 版本,您必須為以下值設(shè)置以下值之一CLASSPATH:
[Oracle Home]/jdbc/lib/classes12.zip
(以及可選的[Oracle Home]/jdbc/lib/nls_charset12.zip)完整 NLS 字符支持)
或者:
[Oracle Home]/jdbc/lib/classes111.zip
(以及可選的[Oracle Home]/jdbc/lib/nls_charset11.zip)完整 NLS 字符支持)
確保你classes*.zip的. nls_charset*.zipCLASSPATH
JDBC OCI 驅(qū)動(dòng)程序:
如果是安裝JDBC OCI驅(qū)動(dòng),還必須為庫(kù)路徑環(huán)境變量設(shè)置如下值
在 Solaris 上,設(shè)置LD_LIBRARY_PATH如下:
[Oracle Home]/lib
該目錄包含libocijdbc8.so共享對(duì)象庫(kù)。
在 Windows NT 上,設(shè)置PATH如下:
[Oracle Home]\lib
該目錄包含ocijdbc8.dll動(dòng)態(tài)鏈接庫(kù)。
JDBC 驅(qū)動(dòng)程序:
如果要安裝 JDBC Thin 驅(qū)動(dòng)程序,則不必設(shè)置任何其他環(huán)境變量。
為進(jìn)一步確保在您的客戶端系統(tǒng)上正確設(shè)置了 Java,請(qǐng)轉(zhuǎn)到該samples目錄(例如,C:\oracle\ora81\jdbc\demo\samples如果您在 Windows NT 機(jī)器上使用 JDBC 驅(qū)動(dòng)程序),然后查看是否javac(Java 編譯器)和java(Java 解釋器)將運(yùn)行而不會(huì)出錯(cuò)。進(jìn)入:
javac
然后輸入:
java
每個(gè)都應(yīng)該給你一個(gè)選項(xiàng)和參數(shù)列表,然后退出。理想情況下,驗(yàn)證您可以編譯和運(yùn)行一個(gè)簡(jiǎn)單的測(cè)試程序。
如果在任何時(shí)候您必須確定您安裝的 JDBC 驅(qū)動(dòng)程序的版本,您可以調(diào)用該類getDriverVersion()的方法OracleDatabaseMetaData。
下面是展示如何操作的示例代碼:
導(dǎo)入java.sql.*;
導(dǎo)入 oracle.jdbc.driver.*;
類 JDBC 版本
{
public static void main (String args[])
拋出 SQLException
{
// 加載 Oracle JDBC 驅(qū)動(dòng)程序
DriverManager.registerDriver
(新的 oracle.jdbc.driver.OracleDriver());
連接conn = DriverManager.getConnection
("jdbc:oracle:thin:@host:port:sid","scott","tiger");
// 創(chuàng)建 Oracle 數(shù)據(jù)庫(kù)元數(shù)據(jù)對(duì)象
DatabaseMetaData meta = conn.getMetaData();
//獲取驅(qū)動(dòng)信息:
System.out.println("JDBC驅(qū)動(dòng)版本為" + meta.getDriverVersion());
}
}
該samples目錄包含特定 Oracle JDBC 驅(qū)動(dòng)程序的示例程序。其中一個(gè)程序,JdbcCheckup.java旨在測(cè)試 JDBC 和數(shù)據(jù)庫(kù)連接。該程序向您詢問(wèn)您的用戶名、密碼和您要連接的數(shù)據(jù)庫(kù)的名稱。該程序連接到數(shù)據(jù)庫(kù),查詢字符串“ Hello World”,并將其打印到屏幕上。
進(jìn)入samples目錄編譯運(yùn)行JdbcCheckup.java。如果打印的查詢結(jié)果沒(méi)有錯(cuò)誤,那么您的 Java 和 JDBC 安裝是正確的。
雖然JdbcCheckup.java是一個(gè)簡(jiǎn)單的程序,但它通過(guò)執(zhí)行以下代碼演示了幾個(gè)重要的功能:
導(dǎo)入必要的 Java 類,包括 JDBC 類
注冊(cè) JDBC 驅(qū)動(dòng)程序
連接到數(shù)據(jù)庫(kù)
執(zhí)行一個(gè)簡(jiǎn)單的查詢
將查詢結(jié)果輸出到您的屏幕
“JDBC 的第一步”, 更詳細(xì)地描述了這些功能。JDBC OCI 驅(qū)動(dòng)程序的列表JdbcCheckup.java如下所示。
/*
* 此示例可用于檢查 JDBC 安裝。
* 只需運(yùn)行它并提供連接信息。它會(huì)選擇
* 來(lái)自數(shù)據(jù)庫(kù)的“Hello World”。
*/
// 需要導(dǎo)入java.sql包才能使用JDBC
導(dǎo)入java.sql.*;
// 我們導(dǎo)入 java.io 以便能夠從命令行讀取
導(dǎo)入java.io.*;
類 JdbcCheckup
{
public static void main(String args[])
拋出 SQLException、IOException
{
// 加載 Oracle JDBC 驅(qū)動(dòng)程序
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// 提示用戶輸入連接信息
System.out.println("請(qǐng)輸入測(cè)試連接信息
數(shù)據(jù)庫(kù)");
字符串用戶;
字符串密碼;
字符串?dāng)?shù)據(jù)庫(kù);
user = readEntry("用戶:");
int slash_index = user.indexOf('/');
如果(斜線索引!= -1)
{
password = user.substring(slash_index + 1);
user = user.substring(0, slash_index);
}
別的
password = readEntry("密碼:");
database = readEntry("數(shù)據(jù)庫(kù)(一個(gè) TNSNAME 條目):");
System.out.print("正在連接數(shù)據(jù)庫(kù)...");
系統(tǒng).out.flush();
System.out.println("正在連接...");
連接conn = DriverManager.getConnection
("jdbc:oracle:oci8:@" + 數(shù)據(jù)庫(kù)、用戶、密碼);
System.out.println("已連接。");
// 創(chuàng)建語(yǔ)句
語(yǔ)句 stmt = conn.createStatement();
// 執(zhí)行 SQL“Hello World”
ResultSet rset = stmt.executeQuery("選擇'Hello World'
來(lái)自雙重");
while (rset.next())
System.out.println(rset.getString(1));
// 關(guān)閉結(jié)果集、語(yǔ)句和連接
rset.close();
stmt.close();
conn.close();
System.out.println("你的 JDBC 安裝正確。");
}
// 從標(biāo)準(zhǔn)輸入讀取一行的實(shí)用函數(shù)
static String readEntry(字符串提示)
{
嘗試
{
StringBuffer buffer = new StringBuffer();
System.out.print(提示);
系統(tǒng).out.flush();
int c = System.in.read();
while (c != '\n' && c != -1)
{
buffer.append((char)c);
c = System.in.read();
}
返回 buffer.toString().trim();
}
趕上(IOException e)
{
返回 ””;
}
}
}
如果大家想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面有更豐富的內(nèi)容在等著大家學(xué)習(xí),相信對(duì)大家會(huì)有所幫助的。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743