定義:JDBC是一個獨立於數據庫管理系統的,通用的SQL數據庫存取和操做的公共接口sql
(由JAVA類和接口組成,接口由各數據庫廠家負責實現)數據庫
使用方法:oracle
一、加載驅動 Class.forName(「數據庫驅動全類名」)xml
Class.forName("oracle.jdbc.driver.OracleDriver"); Oracle加載驅動寫法對象
二、獲取鏈接 DriverManager.getConnection(鏈接數據庫的URL,數據庫帳號,數據庫密碼)接口
例:(連接本機數據庫)事務
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "帳號", "密碼");
get
(鏈接數據庫的URL爲 jdbc:oracle:thin:@地址:1521:數據庫名)it
(都會返回 Connection)io
DatabaseMetaData a = conn.getMetaData() 數據庫源數據
getMetaData() 返回數據庫源數據
三、獲取操做聲明
Statement a = conn.createStatement();
a.executeUpdate(「增刪改語句」) (添加和修改時返回的是受影響的記錄條數)
a.executeQuery(「查詢語句」) (返回 ResultSet 結果集)
PreparedStatement 執行編譯語句的操做聲明
特色 是Statement的子類,執行效率高,防止SQL注入
用法 connection 對象.prepareStatement(sql語句) sql語句能夠用問號做爲佔位符
替換佔位符 setXXX(佔位符序號,替換的內容) 根據XXX的數據類型和佔位符序號進行內容替換(佔位符序號從1開始)
CallableStatement 執行存儲過程的操做聲明
是PreparedStatement的子接口
四、處理結果集
ResultSet a = b.executeQuery(「查詢語句」);
遍歷
while(a.next()){
String sno = a.getString("sno");
String cno = a.getString("cno");
String degree = a.getString("degree");
System.out.println(cno+" "+cno+" "+degree);
}
ResultSetMetaData a = b.getMetaData() 返回結果集的源數據
next() 判斷並返回是否存在下一行,若是存在就跳轉到下一行
getXXXX(字段序號或字段名稱) 根據字段序號或字段名稱返回XXXX類型的字段數據
frist() 跳轉到首行
last() 跳轉到尾行
getRow() 獲取當前行號
五、事務 數據庫中構成單個邏輯工做單元的操做集合
特性ACID A原子性
C一致性
I隔離性
D制約性
實現 connection對象.setAutoCommit(false) 關閉自動提交
connection對象.commit() 操做數據以後進行提交
connection對象.rollback() 若是有數據異常就回滾
六、數據庫鏈接池 負責分配、管理和釋放數據庫鏈接
容許應用程序使用現有的鏈接
ComboPooledDataSource 數據源 構造方法 ComboPooledDataSource()
ComboPooledDataSource(「配置名稱」) 經過配置文件配置項構建數據源的實例
c3p0-config.xml
方法 setDriverClass 設置驅動類
setJdbcUrl 設置數據庫地址
setUser 設置用戶
setPassword 設置密碼
setMinPoolSize 設置連接最小數量
setMaxPoolSize 設置連接最大數量
setInitialPoolSize 設置初始鏈接數量
getConnection 獲取連接對象
用法 可使用單例模式,在整個系統使用一個鏈接池
七、實體類