標籤:
JDBC是java中提供的一套資料庫編程API,它定義了一套用來訪問資料庫的標準Java類庫(位於java.sql和javax.sql包中)。通過JDBC,我們可以用java編寫程式,實現與特定的資料庫進行串連,向資料庫發送SQL語句,實現對資料庫的特定操作,並對資料庫返回的結果進行處理。
JDBC編程步驟:
步驟一:根據應用程式所用的資料庫,選擇JDBC驅動程式類型;
步驟二:串連到資料庫,得到Connection對象;
步驟三:通過Connection建立Statement對象;
步驟四:使用Statement對象提交SQL語句;
步驟五:操作結果集;
步驟六:回收資料庫資源。
JDBC驅動程式分為四個類型:
JDBC-ODBC Bridge: JDBC-ODBC橋 由SUN公司提供通用的驅動,能訪問各種資料庫,但效率極低。
Native-API partly-Java driver: 本地庫Java驅動程式 執行效率高,用戶端必須安裝本地驅動,維護不方便。
net-protocal all-Java driver(JDBC Proxy) 網路通訊協定純Java驅動程式(通用) 用戶端不必安裝本地庫,使用方便,但效能相對較低。
native-protocal all-Java driver: 本地協議完全Java驅動程式 將JDBC調用轉化為特定資料庫的網路通訊協定,效率很高。
載入驅動,通過調用Class類的靜態方法forName()顯式地載入驅動:例如:
Class.forName(驅動程式類);
下面我們來看一段代碼,以便我們瞭解如何去建立資料庫連接:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * JDBC測試 * * @author Administrator * */public class JDBCDemo3 { public static void main(String[] args) { Connection conn = null; // 連線物件 Statement stmt = null; // Statement對象 /* 載入驅動 */ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } /* 建立Connection對象 */ // 連接字串 String url = "jdbc:mysql://localhost:3306/jdbc"; // 使用者名稱 String user = "root"; // 密碼 String password = "123456"; try { // 建立串連 conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); }
/* 執行的是添加多條資料到資料庫中去 */ try { stmt = conn.createStatement(); stmt.addBatch("INSERT INTO users VALUES(5, ‘tom1‘, ‘000000‘)"); stmt.addBatch("INSERT INTO users VALUES(6, ‘tom2‘, ‘000000‘)"); stmt.addBatch("INSERT INTO users VALUES(7, ‘tom3‘, ‘789000‘)"); stmt.addBatch("INSERT INTO users VALUES(8, ‘tom4‘, ‘456000‘)"); stmt.addBatch("INSERT INTO users VALUES(9, ‘tom5‘, ‘123‘)"); stmt.executeBatch(); } catch (SQLException e1) { e1.printStackTrace(); } /* 釋放資源:必做 */ try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }}
Java資料庫編程