更新時間:2022-08-17 08:20:17 來源:動力節點 瀏覽1139次
安裝適當的驅動程序后,就可以使用 JDBC 建立數據庫連接了。
建立 JDBC 連接所涉及的編程相當簡單。這是這些簡單的四個步驟 -
Import JDBC Packages - 將import語句添加到您的 Java 程序以在您的 Java 代碼中導入所需的類。
注冊 JDBC 驅動程序- 此步驟使 JVM 將所需的驅動程序實現加載到內存中,以便它可以滿足您的 JDBC 請求。
Database URL Formulation - 這是創建一個格式正確的地址,指向您希望連接的數據庫。
創建連接對象- 最后,編寫對DriverManager對象的getConnection( )方法的調用以建立實際的數據庫連接。
Import語句告訴 Java 編譯器在哪里可以找到您在代碼中引用的類,并放置在源代碼的最開頭。
要使用允許您在 SQL 表中選擇、插入、更新和刪除數據的標準 JDBC 包,請將以下導入添加到源代碼
import java.sql.* ; // for standard JDBC programs
import java.math.* ; // for BigDecimal and BigInteger support
在使用之前,您必須在程序中注冊驅動程序。注冊驅動程序是將Oracle驅動程序的類文件加載到內存中的過程,因此它可以用作JDBC接口的實現。
您只需在您的程序中進行一次注冊。您可以通過以下兩種方式之一注冊驅動程序。
注冊驅動程序最常見的方法是使用 Java 的Class.forName()方法,將驅動程序的類文件動態加載到內存中,然后自動注冊它。這種方法更可取,因為它允許您使驅動程序注冊可配置和可移植。
以下示例使用 Class.forName() 注冊 Oracle 驅動程序
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
您可以使用getInstance()方法來解決不兼容的 JVM,但是您必須為兩個額外的異常編寫代碼,如下所示
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
catch(IllegalAccessException ex) {
System.out.println("Error: access problem while loading!");
System.exit(2);
catch(InstantiationException ex) {
System.out.println("Error: unable to instantiate driver!");
System.exit(3);
}
可以用來注冊驅動程序的第二種方法是使用靜態DriverManager.registerDriver()方法。
如果您使用的是不兼容 JDK 的 JVM,例如 Microsoft 提供的 JVM,您應該使用registerDriver()方法。
以下示例使用 registerDriver() 注冊 Oracle 驅動程序
try {
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
加載驅動程序后,您可以使用DriverManager.getConnection()方法建立連接。為了便于參考,讓我列出三個重載的 DriverManager.getConnection() 方法 -
獲取連接(字符串網址)
getConnection(字符串 url,屬性道具)
getConnection(字符串 url, 字符串用戶, 字符串密碼)
這里每個表單都需要一個數據庫URL。數據庫 URL 是指向您的數據庫的地址。
制定數據庫 URL 是與建立連接相關的大多數問題發生的地方。
我們列出了三種形式的DriverManager.getConnection()方法來創建連接對象。
使用帶有用戶名和密碼的數據庫 URL
最常用的 getConnection() 形式要求您傳遞數據庫 URL、用戶名和密碼-
假設您使用的是 Oracle 的瘦驅動程序,您將為 URL 的數據庫部分指定 host:port:databaseName 值。
如果您的 TCP/IP 地址為 192.0.0.1 的主機名為 amrood,并且您的 Oracle 偵聽器配置為偵聽端口 1521,并且您的數據庫名稱為 EMP,那么完整的數據庫 URL 將是
jdbc:oracle:thin:@amrood:1521:EMP
現在您必須使用適當的用戶名和密碼調用 getConnection() 方法來獲取Connection對象,如下所示
String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);
DriverManager.getConnection() 方法的第二種形式只需要一個數據庫 URL
DriverManager.getConnection(String url);
但是,在這種情況下,數據庫 URL 包括用戶名和密碼,并具有以下一般形式
jdbc:oracle:driver:username/password@database
因此,可以按如下方式創建上述連接
String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP";
Connection conn = DriverManager.getConnection(URL);
DriverManager.getConnection() 方法的第三種形式需要一個數據庫 URL 和一個 Properties 對象
DriverManager.getConnection(String url, Properties info);
Properties 對象包含一組關鍵字-值對。它用于在調用 getConnection() 方法期間將驅動程序屬性傳遞給驅動程序。
要建立與前面示例相同的連接,請使用以下代碼
import java.util.*;
String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );
Connection conn = DriverManager.getConnection(URL, info);
在 JDBC 程序結束時,需要顯式關閉與數據庫的所有連接以結束每個數據庫會話。但是,如果您忘記了,Java 的垃圾收集器會在清理陳舊對象時關閉連接。
依賴垃圾收集,尤其是在數據庫編程中,是一種非常糟糕的編程實踐。您應該養成使用與連接對象關聯的 close() 方法始終關閉連接的習慣。
為確保連接已關閉,您可以在代碼中提供“finally”塊。finally塊總是執行,無論是否發生異常。
要關閉上面打開的連接,您應該調用 close() 方法,如下所示
conn.close();
顯式關閉連接可以節省 DBMS 資源,這將使您的數據庫管理員感到高興。如果大家想了解更多相關知識,可以關注一下動力節點的JDBC視頻教程,里面的課程內容由淺到深,細致全面,通俗易懂,時候沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習