JDBC—DAO

1、JDBC sql

什麼是JDBC?
JAVA DataBase Connectivity (Java 數據庫鏈接技術)
由Java編寫的一組類和接口組成,爲各類類型的數據庫提供
統一的訪問。
JDBC的做用?
一種將程序數據持久化到數據庫的機制。
JDBC的組成?
1:JDBC API 主要作三件事:
與數據庫創建鏈接/發送SQL語句/處理結果
2:JDBC Driver Manager 驅動程序管理器
3:JDBC驅動 不一樣的數據庫須要不一樣的驅動,這些驅動都實現
了JDBC API中的各類接口。
數據庫

JDBC訪問數據庫的步驟?
1:加載JDBC驅動
2:與數據庫創建鏈接
3:發送SQL語句並獲得返回的結果
4:處理返回結果
(Structured Query Language)
安全

兩種經常使用的驅動方式:
1:JDBC-ODBC橋連方式鏈接數據庫
2:純Java方式鏈接數據庫
------------------------------
常見的鏈接數據庫錯誤:
一、驅動名錯誤
二、數據鏈接字符串,數據庫用戶名,輸錯
三、數據庫操做結束,沒有關閉數據庫鏈接,佔用系統資源
四、關閉數據庫鏈接的語句沒放到finally語句中,可能不被執行
工具

  1. (一)JDBC-ODBC鏈接數據庫

一、在不須要ResultSet對象,Statement對象,Connection對象的時候,顯示地關閉它們
public void close() throws SQLException
二、要按照,先ResultSet結果,後Statement,最後
Connectiond的順序關閉資源。由於ResultSet是經過Statement執行SQL命令獲得的,而Statement是須要在建立鏈接以後才能夠
使用的。
三、用戶若是不關閉ResultSet,當Statement關閉,從新執行或
用於多從結果序列中得到下一個結果時,該ResultSet將自動關閉
性能

  1. (二)純JAVA方式鏈接數據庫

 

(三)經常使用的5個對象 spa

 

Connection,DriverManager(略,見用例) 3d

 

一、Statement經常使用方法 對象

二、ResultSet經常使用方法 blog

 

三、PreparedStatement的介紹 繼承

 

a : PreparedStatement接口繼承自Statement接口:(優勢):

1.提升了代碼的可讀和可維護性

2.提升了SQL語句的執行性能

3.提升了安全性( or '1'='1' 注入拼接攻擊)

 

b : PreparedStatement接口的使用

使用PreparedStatement的execute(String sql)方法執行sql語句若是是查詢的話返回true,若是是更新或插入的話就返回false因此執行插入或更新語句應該使用executeUpdate():

(1) 返回SQL 數據操做語言 (DML) 語句的行數

(2) 對於無返回內容的 SQL 語句,返回 0。

 

c : statement和preparedStatement的區別:

1.statement每次執行sql語句,相關數據庫都要執行拼接sql語句的編譯,preparedstatement是預編譯的,代碼可重用支持批處理。使用 Statement 對象。在對數據庫只執行一次性存取的時侯,用 Statement 對象進行處理。PreparedStatement 對象的開銷比Statement大,對於一次性操做並不會帶來額外的好處。

2: statement須要拼接sql語句,preparedstatement的sql語句能夠用變量替換,達到代碼重用的好處

3.安全性:傳遞給Statement的字符串參數會自動被驅動器忽略。傳遞給PreparedStatement對象的參數能夠被強制進行類型轉換,使開發人員能夠確保在插入或查詢數據時與底層的數據庫格式匹配。

 

d : 使用PreparedStatement操做數據庫的三步驟:

1.建立PreparedStatement對象

2.設置每一個輸入參數的值

3.執行SQL語句

 

PreparedStatement用例

 

 

JDBC用例:

 

 

2、JDBC—DAO模式

 

什麼是DAO?
1:Data Access Objects :數據存儲對象:
2:DAO指位於業務邏輯和持久化數據之間實現對持久化數據的訪
問,也就是將數據庫操做都封裝起來,對外提供相應的接口
3:[採用面向接口,有利於代碼的,低耦合高類聚原則]
DAO的優點?
1:隔離業務邏輯代碼和數據訪問代碼
2:隔離不一樣數據庫實現
DAO的組成?
1:DAO接口 把對數據庫的全部操做定義爲抽象方法
2:DAO實現類 不一樣數據庫給出的DAO接口定義方法的具體實現
3:實體類 用於存放和傳輸對象數據
4:數據庫鏈接和關閉工具
避免了數據庫鏈接和關閉代碼的重複

 

相關文章
相關標籤/搜索