JSP在資料庫中的使用之一:JDBC工作原理和JDBC介面具體實現
JDBC由Sun公司制定,全稱Java DataBase Connectivity,是一種可以執行SQL語句並可返回結果的Java API,支援多種關係型資料庫,封裝在java.sql.*
它的具體位置在\jre7\lib\rt.jar
1、JDBC的工作原理
JDBC的最大特點是獨立於具體的關係型資料庫,它定義了一系列的Java類,完成資料庫連線(Connections)、SQL語句(Statements)、結果集(ResultSet)和其他的資料庫物件,從而達到Java程式和資料庫互動的目的
2、JDBC的四種驅動型別
在Java程式中,JDBC可以分為以下4種驅動型別:
(1)JDBC-ODBC Bridge
用JDBC-ODBC Bridge可以訪問一個ODBC資料來源,但在執行Java程式的機器上必須安裝ODBC驅動,並完成配置
可以看出,中間存在一個JDBC-ODBC的轉換,影響了執行的效率
(2)JDBC Native Bridge
這種方式需要在執行JSP程式的機器上安裝本地的針對特定資料庫(MySQL/SQL/Oracle)的驅動程式,通過這個程式把對資料庫的JDBC呼叫轉化為資料庫的API呼叫,效能比JDBC-ODBC更好,缺點是要安裝驅動
(3)JDBC-Network Bridge
這種方式不需要安裝驅動程式,直接用JDBC通過網路連線資料庫,與平臺無關,所以在WEB開發中大量使用
(4)Pure Java JDBC Driver
Java驅動程式執行在客戶端,客戶端可以直接訪問資料庫,其體系結構最為簡單,因此安全性及程式的邏輯性不行
3、JDBC連線資料庫(以mysql為例)
(1)載入JDBC驅動程式
通過java.lang.Class類中的靜態方法forName實現
(2)提供JDBC連線的URL
協議:子協議:資料來源標識
其中,協議:在JDBC中總是以jdbc開始
子協議:是Bridge的驅動程式或是資料庫管理系統名稱,如MySQL就是mysql,常用的埠號是3306
資料來源標識:標記找出資料來源的地址和連線介面
(3)建立資料庫的連線
向java.sql.DriverManager請求獲取Connection物件
(4)建立Statement
其中Statement分為三類,區別如下:
A、執行靜態SQL:通過Statement例項實現
B、執行動態SQL:通過PreparedStatement例項實現
C、執行資料庫儲存過程:通過CallableStatement例項實現
(5)執行SQL語句,完成資料庫的增刪改或是查詢功能
其中Statement介面提供了三種執行SQL語句的方法,區別如下:
A、Result executeQuery(String sqlString):用於查詢資料庫的SQL,如SELECT,返回一個結果集(ResultSet)
B、int executeUpdate(String sql):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL(資料定義)語句
C、boolean execute(String sql):用於返回多個結果集、多個更新計數或者二者組合(不太懂)
(6)得到處理結果(ResultSet)
(7)關閉JDBC物件
先關閉Statement再關閉Connection連線
參考文獻:
1、鄧子云,《JSP網路程式設計從基礎到實踐》(第2版)
2、邱加永,孫連偉,《JSP基礎與案例開發詳解》
3、譚貞軍,《深入理解Java Web開發技術:探索基於主流框架的最佳組合》