




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10講Java數據庫訪問深刻理解JDBC的概念及JDBCAPI主要內容熟練掌握JDBC應用程序開發(fā)流程熟練掌握應用JDBC實現數據庫記錄的插入、刪除和修改操作熟練掌握應用JDBC查詢數據庫記錄學習目的與要求JDBC ——基礎JDBC(JavaDatabaseConnectivity)是一個獨立于特定數據庫管理系統(tǒng)的、通用的SQL數據庫存取和操作的公共接口(一組API),定義了用來訪問數據庫的標準Java類庫,使用這個類庫可以以一種標準的方法、方便地訪問數據庫資源(在java.sql類包中)。JDBC為訪問不同的數據庫提供了一種統(tǒng)一的途徑,象ODBC(OpenDatabaseConnectivity)一樣,JDBC對開發(fā)者屏蔽了一些細節(jié)問題。JDBC的目標是使應用程序開發(fā)人員使用JDBC可以連接任何提供了JDBC驅動程序的數據庫系統(tǒng),這樣就使得程序員無需對特定的數據庫系統(tǒng)的特點有過多的了解,從而大大簡化和加快了開發(fā)過程。JDBC ——基礎與ODBC相類似,JDBC接口(API)也包括兩個層次:
面向應用的API:JavaAPI,抽象接口,供應用程序開發(fā)人員使用(連接數據庫,執(zhí)行SQL語句,獲得結果)。
面向數據庫的API:JavaDriverAPI,供開發(fā)商開發(fā)數據庫驅動程序用。與ODBC相比,JDBC沒有了定制的“數據源”的概念,而是直接在應用程序中加載驅動程序并連接特定的數據庫。DriverManager(java.sql.DriverManager)裝載驅動程序,管理應用程序與驅動程序之間的連接。Driver(由驅動程序開發(fā)商提供)將應用程序的API請求轉換為特定的數據庫請求。Connection(java.sql.Connection)
將應用程序連接到特定的數據庫Statement(java.sql.Statement)在一個給定的連接中,用于執(zhí)行一個靜態(tài)的數據庫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數據源。僅當特定的數據庫系統(tǒng)沒有相應的JDBC驅動程序時使用。ApplicationSpaceJavaApplicationJDBC–ODBCBridgeDatabaseSQLCommandResultSetODBCDriverProprietaryProtocolJDBC ——驅動程序JDBC-net,pureJavadriver(Type3)將JDBC命令轉換為與數據庫系統(tǒng)無關的網絡協(xié)議,并發(fā)送給一個中間件服務器。中間件服務器再將數據庫系統(tǒng)無關的網絡協(xié)議轉換為特定數據庫系統(tǒng)的協(xié)議,并發(fā)送給數據庫系統(tǒng)。從數據庫系統(tǒng)獲得的結果先發(fā)送給中間件服務器,并進而返回給應用程序。ApplicationSpaceJavaApplicationType3JDBCDriverDatabaseSQLCommandResultSetMiddlewareSpaceProprietaryProtocolJDBCDriverNative-protocol,pureJavadriver(Type4)純Java的驅動程序,直接與特定的數據庫系統(tǒng)通信。直接將JDBC命令轉換為數據庫系統(tǒng)的本地協(xié)議。優(yōu)點:沒有中間的轉換或者是中間件。通常用于提高數據庫訪問的性能。ApplicationSpaceJavaApplicationType4JDBCDriverDatabaseSQLCommand
UsingProprietary
ProtocolResultSet
UsingProprietary
ProtocolJDBC ——驅動程序JDBC ——編程任何一個JDBC應用程序,都需要以下四個步驟:
加載JDBC驅動程序建立與數據庫的連接進行數據庫操作關閉相關連接利用DriverManager類的靜態(tài)方法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”。對于其他類型的驅動程序,根據數據庫系統(tǒng)的不同driverType和dataSource有不同的格式和內容。Step2建立與數據庫的連接Step3進行數據庫操作每執(zhí)行一條SQL語句,都需要利用Connetcion實例的createStatement()方法來創(chuàng)建一個Statement實例。Statement的常用方法包括:執(zhí)行SQLINSERT,UPDATE或DELETE等語句int
executeUpdate(String
sql)執(zhí)行SQLSELECT語句ResultSet
executeQuery(String
sql)執(zhí)行一個可能返回多個結果的SQL語句boolean
execute(Stringsql)(與其他方法結合起來來獲得結果)Statement
中還有其他的方法來執(zhí)行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數據庫創(chuàng)建student數據庫及表。創(chuàng)建數據庫創(chuàng)建Access數據庫文件,數據庫文件名為student.mdb。創(chuàng)建表輸入數據配置ODBC數據源
1)打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信基站建設勞務分包合同
- 天津天獅學院《教育機器人與應用》2023-2024學年第二學期期末試卷
- 山西省太原市第四十八中學2025屆高三年級三診物理試題試卷含解析
- 寧夏銀川市興慶區(qū)一中2024-2025學年普通高中質量檢測試題(二)物理試題含解析
- 江西農業(yè)工程職業(yè)學院《精神神經系統(tǒng)整合課程》2023-2024學年第一學期期末試卷
- 江蘇省南通市2024-2025學年中考模擬最后十套:生物試題(四)考前提分仿真卷含解析
- 上海民遠職業(yè)技術學院《西牙語》2023-2024學年第二學期期末試卷
- 遼寧省本溪高級中學2025屆高三第一次統(tǒng)測英語試題含解析
- 山東省濱州市鄒平縣重點中學2025年高中畢業(yè)班第一次診斷性檢測試題物理試題試卷含解析
- 益陽師范高等??茖W校《計算機輔助繪圖基礎》2023-2024學年第二學期期末試卷
- 2024年新課標高考物理試卷(適用云南、河南、新疆、山西地區(qū) 真題+答案)
- JT-T-961-2020交通運輸行業(yè)反恐怖防范基本要求
- 日投1600黃牛皮汽車座墊革工廠設計
- 沂蒙紅色文化與沂蒙精神智慧樹知到期末考試答案章節(jié)答案2024年臨沂大學
- 酸棗仁湯的臨床應用研究
- 河北省廊坊市安次區(qū)2023-2024學年八年級下學期4月期中物理試題
- 服裝供貨服務方案
- 2015年高考真題新課標-英語II卷真題及答案
- 小學實踐活動教學設計案例
- 主動邀請患者參與醫(yī)療安全
- 2024年醫(yī)院重癥專科護士培訓考試題庫(含答案)
評論
0/150
提交評論