




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10講Java數據庫訪問深刻理解JDBC的概念及JDBCAPI主要內容熟練掌握JDBC應用程序開發流程熟練掌握應用JDBC實現數據庫記錄的插入、刪除和修改操作熟練掌握應用JDBC查詢數據庫記錄學習目的與要求JDBC ——基礎JDBC(JavaDatabaseConnectivity)是一個獨立于特定數據庫管理系統的、通用的SQL數據庫存取和操作的公共接口(一組API),定義了用來訪問數據庫的標準Java類庫,使用這個類庫可以以一種標準的方法、方便地訪問數據庫資源(在java.sql類包中)。JDBC為訪問不同的數據庫提供了一種統一的途徑,象ODBC(OpenDatabaseConnectivity)一樣,JDBC對開發者屏蔽了一些細節問題。JDBC的目標是使應用程序開發人員使用JDBC可以連接任何提供了JDBC驅動程序的數據庫系統,這樣就使得程序員無需對特定的數據庫系統的特點有過多的了解,從而大大簡化和加快了開發過程。JDBC ——基礎與ODBC相類似,JDBC接口(API)也包括兩個層次:
面向應用的API:JavaAPI,抽象接口,供應用程序開發人員使用(連接數據庫,執行SQL語句,獲得結果)。
面向數據庫的API:JavaDriverAPI,供開發商開發數據庫驅動程序用。與ODBC相比,JDBC沒有了定制的“數據源”的概念,而是直接在應用程序中加載驅動程序并連接特定的數據庫。DriverManager(java.sql.DriverManager)裝載驅動程序,管理應用程序與驅動程序之間的連接。Driver(由驅動程序開發商提供)將應用程序的API請求轉換為特定的數據庫請求。Connection(java.sql.Connection)
將應用程序連接到特定的數據庫Statement(java.sql.Statement)在一個給定的連接中,用于執行一個靜態的數據庫SQL語句。
ResultSet(java.sql.ResultSet)SQL語句中心完后,返回的數據結果集(包括行、列)。Metadata(java.sql.DatabaseMetadata;java.sql.ResultSetMetadata)關于查詢結果集、數據庫和驅動程序的元數據信息。JDBC ——基礎:主要概念JDBC ——基礎:基本工作步驟ImportthenecessaryclassesLoadtheJDBCdriverIdentifythedatabasesourceAllocatea“Connection”object(create)Allocatea“Statement”object(create)Executeaqueryusingthe“Statement”objectRetrievedatafromthereturned“ResultSet”objectClosethe“ResultSet”objectClosethe“Statement”objectClosethe“Connection”objectJDBC ——基礎:基本工作步驟1.LoadtheJDBCdriverclass:
Class.forName(“driverName”);2.Openadatabaseconnection:
DriverManager.getConnection (“jdbc:xxx:datasource”);3.IssueSQLstatements:
stmt=con.createStatement(); stmt.executeQuery(“Select*frommyTable”);4.Processresultset:
while(rs.next()){ name=rs.getString(“name”); amount=rs.getInt(“amt”);}ConnectionStatementResultSetDriverDriverManagerDatabaseJDBC支持四種類型的驅動程序:JDBC-ODBCBridge,plusODBCdriver(Type1)SimplestJDBCmethods->TranslateJDBCmethodstoODBCmethods->ODBCtonativemethods->NativemethodsAPINative-API,partlyJavadriver(Type2)JDBCmethods->MapJDBCmethodstonativemethods(callstovendorlibrary)->NativemethodsAPI(vendorlibrary)JDBC-net,pureJavadriver(Type3)JDBCmethods->TranslatetoNativeAPImethodsthroughTCP/IPnetwork->NativeAPImethodsNative-protocol,pureJavadriver(Type4)Javamethods->NativemethodsinJavaJDBC ——驅動程序JDBC ——驅動程序JDBC-ODBCBridge,plusODBCdriver(Type1)由Sun的Java2JDK提供(sun.jdbc.odbc.JdbcOdbcDriver)通過ODBC驅動程序來獲得對數據庫的JDBC訪問必須先安裝ODBC驅動程序和配置ODBC數據源。僅當特定的數據庫系統沒有相應的JDBC驅動程序時使用。ApplicationSpaceJavaApplicationJDBC–ODBCBridgeDatabaseSQLCommandResultSetODBCDriverProprietaryProtocolJDBC ——驅動程序JDBC-net,pureJavadriver(Type3)將JDBC命令轉換為與數據庫系統無關的網絡協議,并發送給一個中間件服務器。中間件服務器再將數據庫系統無關的網絡協議轉換為特定數據庫系統的協議,并發送給數據庫系統。從數據庫系統獲得的結果先發送給中間件服務器,并進而返回給應用程序。ApplicationSpaceJavaApplicationType3JDBCDriverDatabaseSQLCommandResultSetMiddlewareSpaceProprietaryProtocolJDBCDriverNative-protocol,pureJavadriver(Type4)純Java的驅動程序,直接與特定的數據庫系統通信。直接將JDBC命令轉換為數據庫系統的本地協議。優點:沒有中間的轉換或者是中間件。通常用于提高數據庫訪問的性能。ApplicationSpaceJavaApplicationType4JDBCDriverDatabaseSQLCommand
UsingProprietary
ProtocolResultSet
UsingProprietary
ProtocolJDBC ——驅動程序JDBC ——編程任何一個JDBC應用程序,都需要以下四個步驟:
加載JDBC驅動程序建立與數據庫的連接進行數據庫操作關閉相關連接利用DriverManager類的靜態方法getConnection()來獲得與特定數據庫的連接實例(Connection實例)。Connectionconn=DriverManager.getConnection(url);Connectionconn=DriverManager.getConnection(url,user,pass);
這三個參數都是String類型的,使用不同的驅動程序與不同的數據庫建立連接時,url的內容是不同的,但其格式是一致的,都包括三個部分:jdbc:driverType:dataSource
對于JDBC-ODBCBridge,driverType為odbc,dataSource則為ODBC數據源:“jdbc:odbc:myDSN”。對于其他類型的驅動程序,根據數據庫系統的不同driverType和dataSource有不同的格式和內容。Step2建立與數據庫的連接Step3進行數據庫操作每執行一條SQL語句,都需要利用Connetcion實例的createStatement()方法來創建一個Statement實例。Statement的常用方法包括:執行SQLINSERT,UPDATE或DELETE等語句int
executeUpdate(String
sql)執行SQLSELECT語句ResultSet
executeQuery(String
sql)執行一個可能返回多個結果的SQL語句boolean
execute(Stringsql)(與其他方法結合起來來獲得結果)Statement
中還有其他的方法來執行SQL語句。Step4:進行數據庫操作通過ResultSet來獲得查詢結果:ResultSet實例最初定位在結果集的第一行(記錄)ResultSet提供了一些在結果集中定位的方法,如next()等。ResultSet提供了一些方法來獲得當前行中的不同字段的值,getXXX()。ResultSet中還提供了有關方法,來修改結果集,并提交到數據庫中去。Step4:進行數據庫操作通過ResultSetMetadata來獲得查詢結果的元數據信息:ResultSet提供了一個方法getMetadata()來獲得結果集的元數據信息,它返回的是一個ResultSetMetadata實例。通過ResultSetMetadata實例,就可以獲得結果集中字段的詳細信息,如字段總數,每個字段的名稱、類型等。getColumnCount()//#ofcolumnsintherowgetColumnName(i)//returnscolumnnamegetColumnType(i)//returnscolumndatatypegetColumnLabel(i)//suggestedlabelforacolumnwhenprintgetTableName()//returnsthenameofthetable確定了字段類型,獲取字段數據時,就可以明確如何使用ResultSet中的getXXX()方法了。通過DatabaseMetadata來獲得數據庫的元數據信息:Connection提供了一個方法getMetadata()來獲得數據庫的元數據信息,它返回的是一個DatabaseMetadata實例。通過DatabaseMetadata實例,就可以獲得數據庫的各種信息,如數據庫廠商信息、版本信息、數據表數目、每個數據表名稱等。getDatabaseProductName()getDatabaseProductVersion()getDriverName()getTables()Step4:進行數據庫操作JDBC ——示例【例1】使用Access數據庫創建student數據庫及表。創建數據庫創建Access數據庫文件,數據庫文件名為student.mdb。創建表輸入數據配置ODBC數據源
1)打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年進口啤酒項目合作計劃書
- 水產養殖與生態農業綜合開發股權合作協議
- 智能合約區塊鏈電子證據收集與驗證補充協議
- 旅游團隊醫療保障補充合同
- 抖音平臺專業團購運營培訓全面服務合同
- 建筑施工企業安全風險評估與培訓服務協議
- 婚慶策劃影視廣告拍攝制作與愛情故事合同
- 新能源汽車電池回收與梯次利用市場拓展合作協議
- 金融機構間貨幣信貸補充協議
- 人與植物自然對話課件
- GB/T 45159.1-2024機械振動與沖擊黏彈性材料動態力學性能的表征第1部分:原理和指南
- 有效問題解決培訓
- 第八章《運動和力》達標測試卷(含答案)2024-2025學年度人教版物理八年級下冊
- 跟著音樂游中國知到智慧樹章節測試課后答案2024年秋廣州大學
- 產品質量管控方案
- 《疣的診斷與治療》課件
- 2025年春新北師大版數學七年級下冊課件 ☆問題解決策略:轉化
- 建筑工程材料供貨及售后保障方案
- 全球包裝材料標準BRCGS第7版內部審核全套記錄
- 《催眠治療》課件
- 2013循證醫學-第六章臨床實踐指南的循證評價與應用
評論
0/150
提交評論