不少學(xué)習(xí)過JAVA,或者接觸過java的人,對jdbc應(yīng)該都不陌生。但是,jdbc到底是啥?有些人可能還真不知道,即便一直在用。jdbc是基于java的數(shù)據(jù)庫訪問接口。
具體的操作步驟如下:
1、加載驅(qū)動(dòng)(加載驅(qū)動(dòng)一般有兩種方法)
(1)使用Class.forName方法
Class.forName("com.MySQL.jdbc.Driver")
(2)靜態(tài)創(chuàng)建JDBC實(shí)例
Driver md=new com.mysql.jdbc.Driver();
DriverManager.registerDriver(md);
2、建立數(shù)據(jù)庫連接
Connection con=DriverManager.getConnection("...");
3、獲得用于進(jìn)行數(shù)據(jù)操作的對象
4、關(guān)閉數(shù)據(jù)庫
這里邊有幾點(diǎn)是要注意的:
(1)關(guān)閉操作,先關(guān)閉數(shù)據(jù)操作對象,在關(guān)閉數(shù)據(jù)庫連接對象。
(2)PreparedStatement與Statement
這兩個(gè)方法使用起來類似,但是,不同的是:在創(chuàng)建PreparedStatement對象時(shí),必須使用 PreparedStatement方法指定一個(gè)動(dòng)態(tài)的SQL。
使用PreparedStatement好處:
(2.1)提高代碼的可讀性和可維護(hù)性,不需要拼接sql
(2.2)提高性能:動(dòng)態(tài)sql可以被DBMS編譯后緩存起來,等下次再執(zhí)行相同預(yù)編譯語句時(shí),不需要再進(jìn)行編譯,只要傳值即可
(2.3)提高復(fù)用
(2.4)提高安全性:sql通過變量進(jìn)行傳遞,可能會(huì)受到sql注入攻擊。
存取BLOB字段值
(1)讀取時(shí)使用Statement對象
(2)寫入時(shí),必須使用PreparedStatement對象的setBinaryStream方法
jdbc默認(rèn)情況下是隱式事物某式,無需提交事物,直接將數(shù)據(jù)插入數(shù)據(jù)庫。如果開啟顯式,可以使用setAutoCommit方法。改為顯式,就需要手動(dòng)提交事物,否則,數(shù)據(jù)不能出去數(shù)據(jù)庫中。
調(diào)用存儲(chǔ)過程的方法:
preparecall (" 存儲(chǔ)過程名")
注冊參數(shù)方法:
registerOutParameter()