JDBC庫中所包含的API通常與數據庫使用於:
- 連接到數據庫
- 創建SQL或MySQL語句
- 在數據庫中執行SQL或MySQL查詢
- 查看和修改數據庫中的數據記錄
創建JDBC應用程序
建立一個JDBC應用程序,本教程中以Java連接MySQL為一個示例,分六個步驟進行:
- 導入包:需要包含包含數據庫編程所需的JDBC類的包。 大多數情況下,使用
import java.sql.*
就足夠了。 - 注冊JDBC驅動程序:需要初始化驅動程序,以便可以打開與數據庫的通信通道。
- 打開一個連接:需要使用
DriverManager.getConnection()
方法創建一個Connection
對象,它表示與數據庫的物理連接。 - 執行查詢:需要使用類型為
Statement
的對象來構建和提交SQL語句到數據庫。 - 從結果集中提取數據:需要使用相應的
ResultSet.getXXX()
方法從結果集中檢索數據。 - 清理環境:需要明確地關閉所有數據庫資源,而不依賴於JVM的垃圾收集。
1. 導入包
在程序中包含數據庫編程所需的JDBC類。大多數情況下,使用 import java.sql.*
就足夠了,如下所示:
//STEP 1. Import required packages import java.sql.*;
2. 注冊JDBC驅動程序
需要初始化驅動程序,這樣就可以打開與數據庫的通信。以下是代碼片段實現這一目標:
//STEP 2: Register JDBC driver Class.forName("com.mysql.jdbc.Driver");
3. 打開一個連接
使用DriverManager.getConnection()
方法來創建一個Connection
對象,它代表一個數據庫的物理連接,如下所示:
//STEP 3: Open a connection // Database credentials static final String USER = "root"; static final String PASS = "pwd123456"; System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS);
4. 執行一個查詢
需要使用一個類型為Statement
或PreparedStatement
的對象,並提交一個SQL語句到數據庫執行查詢。如下:
//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);
如果要執行一個SQL語句:UPDATE
,INSERT
或DELETE
語句,那么需要下面的代碼片段:
//STEP 4: Execute a query System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql; sql = "DELETE FROM Employees"; ResultSet rs = stmt.executeUpdate(sql);
5. 從結果集中提取數據
這一步中演示如何從數據庫中獲取查詢結果的數據。可以使用適當的ResultSet.getXXX()
方法來檢索的數據結果如下:
//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); }
6. 清理環境資源
在使用JDBC與數據交互操作數據庫中的數據后,應該明確地關閉所有的數據庫資源以減少資源的浪費,對依賴於JVM的垃圾收集如下:
//STEP 6: Clean-up environment rs.close(); stmt.close(); conn.close();