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