JDBC操作資料庫基本步驟
轉自:http://jokerlinisty.iteye.com/blog/2198399
1、JDBC概念
1)從物理結構:JDBC是Java語言訪問資料庫的一套介面(API)集合。
2)從本質上:JDBC是呼叫者(開發人員)和實現者(資料庫廠商)之間的協議。
3)JDBC的實現由資料庫廠商以驅動程式的形式提供。
4)開發人員藉助JDBC的API,就可以使用純Java的方式來連線和操縱資料庫。
2、JDBC常用介面和類簡介
1)java.sql.Driver 介面: 代表驅動程式,每個驅動程式類必須實現的介面。
2)java.sql.DriverManager 類:驅動程式管理類,管理一組 JDBC 驅動程式的基本服務。
3)java.sql.Connection 介面:資料庫連線,用於與特定的資料庫連線。
4)java.sql.Statement 介面:資料庫操作介面,用於執行靜態SQL語句並返回它所生成結果的物件。
5)java.sql.PreparedStatement介面:資料庫操作介面,表示儲存預編譯SQL語句的物件,用於多次高效地執行該SQL語句。
6)java.sql.CallableStatement介面:資料庫操作介面,用於執行SQL儲存過程的介面。
7)java.sql.ResultSet 介面: 代表結果集的資料表,用於儲存查詢資料庫返回的結果。
3、基本操作步驟如下:
1)載入(註冊)資料庫驅動(到JVM)。
2)建立(獲取)資料庫連線。
3)建立(獲取)資料庫操作物件。
4)定義操作的SQL語句。
5)執行資料庫操作。
6)獲取並操作結果集
7)回收資料庫資源(關閉結果集-->關閉資料庫操作物件-->關閉連線)
4、例項參考(以MySQL為例)
package com.brad.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { /** * 使用JDBC連線並操作mysql資料庫 */ public static void main(String[] args) { // 資料庫驅動類名的字串 String driver = "com.mysql.jdbc.Driver"; // 資料庫連線串 String url = "jdbc:mysql://127.0.0.1:3306/jdbctest?useUnicode=true&characterEncoding=utf8"; // 使用者名稱 String username = "root"; // 密碼 String password = "123456"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 1、載入資料庫驅動( 成功載入後,會將Driver類的例項註冊到DriverManager類中) Class.forName(driver ); // 2、獲取資料庫連線 conn = DriverManager.getConnection(url, username, password); // 3、獲取資料庫操作物件 stmt = conn.createStatement(); // 4、定義操作的SQL語句 String sql = "select * from user where id = 100"; // 5、執行資料庫操作 rs = stmt.executeQuery(sql); // 6、獲取並操作結果集 while (rs.next()) { System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } finally { // 7、關閉物件,回收資料庫資源 if (rs != null) { //關閉結果集物件 try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { // 關閉資料庫操作物件 try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { // 關閉資料庫連線物件 try { if (!conn.isClosed()) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } }