更新時間:2022-06-10 09:58:20 來源:動力節點 瀏覽1971次
Java作為最杰出的編程語言之一,為數據庫提供了廣泛的支持。它幫助我們通過JDBC(Java Database Connectivity)連接各種數據庫。在本文中,動力節點小編將告訴您如何使用 JDBC 連接數據庫并執行查詢。
本文涵蓋以下主題:
JDBC簡介
通用 JDBC 組件
創建 JDBC 應用程序的步驟
JDBC 連接
JDBC 是標準 Java API 之一,用于在Java 編程語言和廣泛的數據庫之間實現與數據庫無關的連接。此 API 允許您使用結構化查詢語言( SQL ) 對訪問請求語句進行編碼。這主要涉及打開連接、創建 SQL 數據庫、執行 SQL 查詢然后到達輸出。
JDBC API 可用于訪問存儲在任何關系數據庫中的表格數據。有了這個,您可以更新、保存、獲取和刪除數據庫中的數據。它類似于 Microsoft 提供的開放式數據庫連接 (ODBC)。
為了更好地理解 JDBC 的工作原理,讓我們深入探討該主題并了解 Java 數據庫連接背后的架構。
JDBC API 提供以下接口和類
DriverManager:這主要用于管理數據庫驅動程序列表。識別某個子協議的驅動程序將用于建立數據庫連接。
驅動程序是處理與數據庫服務器通信的接口。它還抽象了細節在使用 Driver 對象時關聯的對象。
Connection 是一個接口,它包含連接到數據庫所需的所有方法。連接對象處理數據庫的通信功能。語境。
現在讓我們繼續下一個主題,看看創建 JDBC 應用程序所需的步驟。
為了創建 JDBC 應用程序,您需要執行幾個步驟。讓我們看看它們是什么。
導入包: 您需要包含所有包含數據庫編程所需的 JDBC 類的包。大多數情況下,使用import java.sql.* 就足夠了。
注冊 JDBC 驅動程序: 這里你必須初始化一個驅動程序,以便你可以打開與數據庫的通信通道。
打開連接: 這里可以使用 getConnection() 方法創建一個 Connection 對象,該對象代表與數據庫的物理連接。
執行查詢: 這實際上需要使用 Statement 類型的對象來構建 SQL 語句并將其提交到數據庫。
從結果集中提取數據: 建議您使用適當的getXXX() 方法從結果集中提取數據。
清理環境:在這里,與依賴 JVM 的垃圾收集相比,顯式關閉所有數據庫資源至關重要。
現在您已經看到了創建 JDBC 應用程序所涉及的各個步驟,讓我們看一個創建數據庫和建立連接的示例代碼。
package Edureka;
import java.sql.*;
import java.sql.DriverManager;
public class Example {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/emp";
// Database credentials
static final String USER = "root";
static final String PASS = "";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,"root","");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close()
}catch(SQLException se2){
}// nothing can be done
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
} // end Example
上面的代碼在您的 localhost 數據庫中創建了一個表。要在創建的數據庫中插入值,您可以參考以下代碼。小編將只為第 4 步編寫代碼。其余代碼與上面相同。
//STEP 4: Execute a query
System.out.println("Creating table in given database...");
stmt = conn.createStatement();
String sql = "CREATE TABLE EMPLOYEES " +
"(id INTEGER not NULL, " +
" first VARCHAR(255), " +
" last VARCHAR(255), " +
" age INTEGER, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
System.out.println("Inserting records into the table...");
stmt =conn.createStatement();
String sql ="INSERT INTO Employees VALUES (100, 'Kriss', 'Kurian', 18)";
stmt.executeUpdate(sql);
sql = "INSERT INTO Employees VALUES (101, 'Enrique', 'John', 25)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees (102, 'Taylor', 'Swift', 30)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees VALUES(103, 'Linkin', 'Park', 28)";
stmt.executeUpdate(sql);
System.out.println("Inserted records into the table...");
因此,這就是您可以建立與數據庫的連接并在表中插入值的方式。現在讓我們進一步了解各種 JDBC 驅動程序類型。
JDBC 驅動程序用于實現 JDBC API 中定義的接口,用于與數據庫服務器進行交互。本質上, JDBC 驅動程序做了三件事,它們如下:1. 建立與數據源的連接。2. 它將查詢和更新語句發送到數據源。3. 最后,它處理結果。
例如,JDBC 驅動程序通過發送SQL 或數據庫命令幫助您打開數據庫連接以與之交互。如果您想了解更多關于 JDBC Driver 的類型,可以參考這篇關于JDBC Drivers的文章。
現在讓我們進一步了解 JDBC 連接。
導入 JDBC 包: 將 導入 語句添加到您的Java 程序以在您的 Java 代碼中導入所需的類。
注冊 JDBC 驅動程序:在這一步中,JVM將所需的驅動程序實現加載到內存中,以便它可以滿足 JDBC 請求。注冊驅動程序有兩種方法。
注冊驅動程序最合適的方法是使用Java的forName()方法將驅動程序的類文件動態加載到內存中,它會自動注冊它。此方法適用,因為它允許您使驅動程序注冊可配置和可移植。看看下面的代碼:
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex)
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
可以用來注冊驅動程序的第二種方法是使用靜態 registerDriver()方法。
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);
}
如果您使用的是不兼容 JDK 的 JVM,例如 Microsoft 提供的 JVM,您應該使用 registerDriver()方法。這里每個表單都需要一個數據庫 URL。
數據庫 URL 公式: URL 公式對于創建格式正確的地址是必要的,該地址指向您要連接的數據庫。加載驅動程序后,您可以使用DriverManager.getConnection() 方法建立連接。DriverManager.getConnection() 方法是 -
獲取連接(字符串網址)
getConnection(字符串 url,屬性道具)
getConnection(字符串 url, 字符串用戶, 字符串密碼)
創建連接對象
您可以使用數據庫 URL、用戶名和密碼以及使用屬性對象來創建連接。
關
最后,要結束數據庫會話,您需要關閉所有數據庫連接。但是,如果您忘記了,Java 的垃圾收集器會在清理陳舊對象時關閉連接。
conn.close(); // Used to close the connection
通過上述,相信大家對JDBC連接數據庫的代碼已經有所了解,大家如果想了解更多相關知識,不妨來關注一下動力節點的JDBC視頻教程,里面還有更豐富的知識等著大家去學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習