1. 程式人生 > >JSP在資料庫中的使用之一:JDBC工作原理和JDBC介面具體實現

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開發技術:探索基於主流框架的最佳組合》