jdbc

1、DriverManager

Jdbc程序中的DriverManager用於加載驅動,並建立與數據庫的連接,這個API的經常使用方法:html

DriverManager.registerDriver(new Driver())mysql

DriverManager.getConnection(url, user, password),sql

注意:在實際開發中並不推薦採用registerDriver方法註冊驅動。緣由有二:數據庫

1.查看Driver的源代碼能夠看到,若是採用此種方式,會致使驅動程序註冊兩次,也就是在內存中會有兩個Driver對象。編程

2.程序依賴mysql的api,脫離mysql的jar包,程序將沒法編譯,未來程序切換底層數據庫將會很是麻煩。api

推薦方式:Class.forName(「com.mysql.jdbc.Driver」);url

採用此種方式不會致使驅動對象在內存中重複出現,而且採用此種方式,程序僅僅只須要一個字符串,不須要依賴具體的驅動,使程序的靈活性更高。spa

一樣,在開發中也不建議採用具體的驅動類型指向getConnection方法返回的connection對象,一般會經過鏈接池來獲取。htm

2、Connection


Jdbc程序中的Connection,它用於表明數據庫的連接,Collection是數據庫編程中最重要的一個對象,客戶端與數據庫全部交互都是經過connection對象完成的,這個對象的經常使用方法:對象

createStatement():建立向數據庫發送sql的statement對象

prepareStatement(sql) :建立向數據庫發送預編譯sql的PrepareSatement對象

prepareCall(sql):建立執行存儲過程的callableStatement對象。

setAutoCommit(boolean autoCommit):設置事務是否自動提交。

commit() :在連接上提交事務。 ---與事務相關!!

rollback() :在此連接上回滾事務。

3、Statement


Jdbc程序中的Statement對象用於向數據庫發送SQL語句, Statement對象經常使用方法:

executeQuery(String sql) :用於向數據發送查詢語句。

executeUpdate(String sql):用於向數據庫發送insert、update或delete語句

execute(String sql):用於向數據庫發送任意sql語句

addBatch(String sql) :把多條sql語句放到一個批處理中。

executeBatch():向數據庫發送一批sql語句執行。 

4、PreparedStatement
PreparedStatement是Statement的子接口,它的實例對象能夠經過調用

Connection.preparedStatement(sql)方法得到,相對於Statement對象而言:

PreperedStatement能夠避免SQL注入的問題。

Statement會使數據庫頻繁編譯SQL,可能形成數據庫緩衝區溢出。PreparedStatement 可對SQL進行預編譯,從而提升數據庫的執行效率。

而且PreperedStatement對於sql中的參數,容許使用佔位符的形式進行替換,簡化sql語句的編寫。


5、ResultSet (結果集)
Jdbc程序中的ResultSet用於表明Sql語句的執行結果。Resultset封裝執行結果時,採用的相似於表格的方式。ResultSet 對象維護了一個指向表格數據行的遊標cursor,初始的時候,遊標在第一行以前,調用ResultSet.next() 方法,可使遊標指向具體的數據行,進而調用方法獲取該行的數據。

ResultSet既然用於封裝執行結果的,因此該對象提供的大部分方法都是用於獲取數據的get方法:

獲取任意類型的數據

getObject(int index)

getObject(string columnName)

獲取指定列的數據,例如:

getString(int index)

getString(String columnName)

相似的還有getInt、getDouble等等.


6、釋放資源
Jdbc程序運行完後,切記要釋放程序在運行過程當中,建立的那些與數據庫進行交互的對象,這些對象一般是ResultSet, Statement和Connection對象。

特別是Connection對象,它是很是稀有的資源,用完後必須立刻釋放,若是Connection不能及時、正確的關閉,極易致使系統宕機。Connection的使用原則是儘可能晚建立,儘可能早的釋放。

爲確保資源釋放代碼能運行,資源釋放代碼也必定要放在finally語句中。

7、ResultSet 滾動結果集
ResultSet還提供了對結果集進行滾動和更新的方法

Statement stmt = conn.createStatement( );

next():移動到下一行

previous():移動到前一行

absolute(int row):移動到指定行

beforeFirst():移動resultSet的最前面

afterLast() :移動到resultSet的最後面

updateRow() :更新行數據

先Connection鏈接   PreparedStatement發送sql Resultset執行 

參考:https://www.cnblogs.com/wuyuegb2312/p/3872607.html

    https://www.cnblogs.com/erbing/p/5805727.html

相關文章
相關標籤/搜索