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
Jdbc程序中的Connection,它用於表明數據庫的連接,Collection是數據庫編程中最重要的一個對象,客戶端與數據庫全部交互都是經過connection對象完成的,這個對象的經常使用方法:對象
createStatement():建立向數據庫發送sql的statement對象
prepareStatement(sql) :建立向數據庫發送預編譯sql的PrepareSatement對象
prepareCall(sql):建立執行存儲過程的callableStatement對象。
setAutoCommit(boolean autoCommit):設置事務是否自動提交。
commit() :在連接上提交事務。 ---與事務相關!!
rollback() :在此連接上回滾事務。
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