![Java數(shù)據(jù)庫訪問課件_第1頁](http://file4.renrendoc.com/view/d630e5078aa2cb3d9d9f49b18369d0fa/d630e5078aa2cb3d9d9f49b18369d0fa1.gif)
![Java數(shù)據(jù)庫訪問課件_第2頁](http://file4.renrendoc.com/view/d630e5078aa2cb3d9d9f49b18369d0fa/d630e5078aa2cb3d9d9f49b18369d0fa2.gif)
![Java數(shù)據(jù)庫訪問課件_第3頁](http://file4.renrendoc.com/view/d630e5078aa2cb3d9d9f49b18369d0fa/d630e5078aa2cb3d9d9f49b18369d0fa3.gif)
![Java數(shù)據(jù)庫訪問課件_第4頁](http://file4.renrendoc.com/view/d630e5078aa2cb3d9d9f49b18369d0fa/d630e5078aa2cb3d9d9f49b18369d0fa4.gif)
![Java數(shù)據(jù)庫訪問課件_第5頁](http://file4.renrendoc.com/view/d630e5078aa2cb3d9d9f49b18369d0fa/d630e5078aa2cb3d9d9f49b18369d0fa5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第10講Java數(shù)據(jù)庫訪問深刻理解JDBC的概念及JDBCAPI主要內(nèi)容熟練掌握J(rèn)DBC應(yīng)用程序開發(fā)流程熟練掌握應(yīng)用JDBC實(shí)現(xiàn)數(shù)據(jù)庫記錄的插入、刪除和修改操作熟練掌握應(yīng)用JDBC查詢數(shù)據(jù)庫記錄學(xué)習(xí)目的與要求JDBC ——基礎(chǔ)JDBC(JavaDatabaseConnectivity)是一個獨(dú)立于特定數(shù)據(jù)庫管理系統(tǒng)的、通用的SQL數(shù)據(jù)庫存取和操作的公共接口(一組API),定義了用來訪問數(shù)據(jù)庫的標(biāo)準(zhǔn)Java類庫,使用這個類庫可以以一種標(biāo)準(zhǔn)的方法、方便地訪問數(shù)據(jù)庫資源(在java.sql類包中)。JDBC為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一的途徑,象ODBC(OpenDatabaseConnectivity)一樣,JDBC對開發(fā)者屏蔽了一些細(xì)節(jié)問題。JDBC的目標(biāo)是使應(yīng)用程序開發(fā)人員使用JDBC可以連接任何提供了JDBC驅(qū)動程序的數(shù)據(jù)庫系統(tǒng),這樣就使得程序員無需對特定的數(shù)據(jù)庫系統(tǒng)的特點(diǎn)有過多的了解,從而大大簡化和加快了開發(fā)過程。JDBC ——基礎(chǔ)與ODBC相類似,JDBC接口(API)也包括兩個層次:
面向應(yīng)用的API:JavaAPI,抽象接口,供應(yīng)用程序開發(fā)人員使用(連接數(shù)據(jù)庫,執(zhí)行SQL語句,獲得結(jié)果)。
面向數(shù)據(jù)庫的API:JavaDriverAPI,供開發(fā)商開發(fā)數(shù)據(jù)庫驅(qū)動程序用。與ODBC相比,JDBC沒有了定制的“數(shù)據(jù)源”的概念,而是直接在應(yīng)用程序中加載驅(qū)動程序并連接特定的數(shù)據(jù)庫。DriverManager(java.sql.DriverManager)裝載驅(qū)動程序,管理應(yīng)用程序與驅(qū)動程序之間的連接。Driver(由驅(qū)動程序開發(fā)商提供)將應(yīng)用程序的API請求轉(zhuǎn)換為特定的數(shù)據(jù)庫請求。Connection(java.sql.Connection)
將應(yīng)用程序連接到特定的數(shù)據(jù)庫Statement(java.sql.Statement)在一個給定的連接中,用于執(zhí)行一個靜態(tài)的數(shù)據(jù)庫SQL語句。
ResultSet(java.sql.ResultSet)SQL語句中心完后,返回的數(shù)據(jù)結(jié)果集(包括行、列)。Metadata(java.sql.DatabaseMetadata;java.sql.ResultSetMetadata)關(guān)于查詢結(jié)果集、數(shù)據(jù)庫和驅(qū)動程序的元數(shù)據(jù)信息。JDBC ——基礎(chǔ):主要概念JDBC ——基礎(chǔ):基本工作步驟ImportthenecessaryclassesLoadtheJDBCdriverIdentifythedatabasesourceAllocatea“Connection”object(create)Allocatea“Statement”object(create)Executeaqueryusingthe“Statement”objectRetrievedatafromthereturned“ResultSet”objectClosethe“ResultSet”objectClosethe“Statement”objectClosethe“Connection”objectJDBC ——基礎(chǔ):基本工作步驟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支持四種類型的驅(qū)動程序: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 ——驅(qū)動程序JDBC ——驅(qū)動程序JDBC-ODBCBridge,plusODBCdriver(Type1)由Sun的Java2JDK提供(sun.jdbc.odbc.JdbcOdbcDriver)通過ODBC驅(qū)動程序來獲得對數(shù)據(jù)庫的JDBC訪問必須先安裝ODBC驅(qū)動程序和配置ODBC數(shù)據(jù)源。僅當(dāng)特定的數(shù)據(jù)庫系統(tǒng)沒有相應(yīng)的JDBC驅(qū)動程序時(shí)使用。ApplicationSpaceJavaApplicationJDBC–ODBCBridgeDatabaseSQLCommandResultSetODBCDriverProprietaryProtocolJDBC ——驅(qū)動程序JDBC-net,pureJavadriver(Type3)將JDBC命令轉(zhuǎn)換為與數(shù)據(jù)庫系統(tǒng)無關(guān)的網(wǎng)絡(luò)協(xié)議,并發(fā)送給一個中間件服務(wù)器。中間件服務(wù)器再將數(shù)據(jù)庫系統(tǒng)無關(guān)的網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換為特定數(shù)據(jù)庫系統(tǒng)的協(xié)議,并發(fā)送給數(shù)據(jù)庫系統(tǒng)。從數(shù)據(jù)庫系統(tǒng)獲得的結(jié)果先發(fā)送給中間件服務(wù)器,并進(jìn)而返回給應(yīng)用程序。ApplicationSpaceJavaApplicationType3JDBCDriverDatabaseSQLCommandResultSetMiddlewareSpaceProprietaryProtocolJDBCDriverNative-protocol,pureJavadriver(Type4)純Java的驅(qū)動程序,直接與特定的數(shù)據(jù)庫系統(tǒng)通信。直接將JDBC命令轉(zhuǎn)換為數(shù)據(jù)庫系統(tǒng)的本地協(xié)議。優(yōu)點(diǎn):沒有中間的轉(zhuǎn)換或者是中間件。通常用于提高數(shù)據(jù)庫訪問的性能。ApplicationSpaceJavaApplicationType4JDBCDriverDatabaseSQLCommand
UsingProprietary
ProtocolResultSet
UsingProprietary
ProtocolJDBC ——驅(qū)動程序JDBC ——編程任何一個JDBC應(yīng)用程序,都需要以下四個步驟:
加載JDBC驅(qū)動程序建立與數(shù)據(jù)庫的連接進(jìn)行數(shù)據(jù)庫操作關(guān)閉相關(guān)連接利用DriverManager類的靜態(tài)方法getConnection()來獲得與特定數(shù)據(jù)庫的連接實(shí)例(Connection實(shí)例)。Connectionconn=DriverManager.getConnection(url);Connectionconn=DriverManager.getConnection(url,user,pass);
這三個參數(shù)都是String類型的,使用不同的驅(qū)動程序與不同的數(shù)據(jù)庫建立連接時(shí),url的內(nèi)容是不同的,但其格式是一致的,都包括三個部分:jdbc:driverType:dataSource
對于JDBC-ODBCBridge,driverType為odbc,dataSource則為ODBC數(shù)據(jù)源:“jdbc:odbc:myDSN”。對于其他類型的驅(qū)動程序,根據(jù)數(shù)據(jù)庫系統(tǒng)的不同driverType和dataSource有不同的格式和內(nèi)容。Step2建立與數(shù)據(jù)庫的連接Step3進(jìn)行數(shù)據(jù)庫操作每執(zhí)行一條SQL語句,都需要利用Connetcion實(shí)例的createStatement()方法來創(chuàng)建一個Statement實(shí)例。Statement的常用方法包括:執(zhí)行SQLINSERT,UPDATE或DELETE等語句int
executeUpdate(String
sql)執(zhí)行SQLSELECT語句ResultSet
executeQuery(String
sql)執(zhí)行一個可能返回多個結(jié)果的SQL語句boolean
execute(Stringsql)(與其他方法結(jié)合起來來獲得結(jié)果)Statement
中還有其他的方法來執(zhí)行SQL語句。Step4:進(jìn)行數(shù)據(jù)庫操作通過ResultSet來獲得查詢結(jié)果:ResultSet實(shí)例最初定位在結(jié)果集的第一行(記錄)ResultSet提供了一些在結(jié)果集中定位的方法,如next()等。ResultSet提供了一些方法來獲得當(dāng)前行中的不同字段的值,getXXX()。ResultSet中還提供了有關(guān)方法,來修改結(jié)果集,并提交到數(shù)據(jù)庫中去。Step4:進(jìn)行數(shù)據(jù)庫操作通過ResultSetMetadata來獲得查詢結(jié)果的元數(shù)據(jù)信息:ResultSet提供了一個方法getMetadata()來獲得結(jié)果集的元數(shù)據(jù)信息,它返回的是一個ResultSetMetadata實(shí)例。通過ResultSetMetadata實(shí)例,就可以獲得結(jié)果集中字段的詳細(xì)信息,如字段總數(shù),每個字段的名稱、類型等。getColumnCount()//#ofcolumnsintherowgetColumnName(i)//returnscolumnnamegetColumnType(i)//returnscolumndatatypegetColumnLabel(i)//suggestedlabelforacolumnwhenprintgetTableName()//returnsthenameofthetable確定了字段類型,獲取字段數(shù)據(jù)時(shí),就可以明確如何使用ResultSet中的getXXX()方法了。通過DatabaseMetadata來獲得數(shù)據(jù)庫的元數(shù)據(jù)信息:Connection提供了一個方法getMetadata()來獲得數(shù)據(jù)庫的元數(shù)據(jù)信息,它返回的是一個DatabaseMetadata實(shí)例。通過DatabaseMetadata實(shí)例,就可以獲得數(shù)據(jù)庫的各種信息,如數(shù)據(jù)庫廠商信息、版本信息、數(shù)據(jù)表數(shù)目、每個數(shù)據(jù)表名稱等。getDatabaseProductName()getDatabaseProductVersion()getDriverName()getTables()Step4:進(jìn)行數(shù)據(jù)庫操作JDBC ——示例【例1】使用Access數(shù)據(jù)庫創(chuàng)建student數(shù)據(jù)庫及表。創(chuàng)建數(shù)據(jù)庫創(chuàng)建Access數(shù)據(jù)庫文件,數(shù)據(jù)庫文件名為student.mdb。創(chuàng)建表輸入數(shù)據(jù)配置ODBC數(shù)據(jù)源
1)打
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度印刷廠員工環(huán)保意識培訓(xùn)與勞動合同
- 二零二五年度住宅樓盤物業(yè)管理規(guī)范實(shí)施監(jiān)督合同
- 2025年度租賃房屋使用權(quán)轉(zhuǎn)讓協(xié)議書
- 二零二五年度化工產(chǎn)品英文版銷售代理協(xié)議
- 2025年度人工智能合伙人退伙協(xié)議范文
- 2025年度醫(yī)療信息化建設(shè)與信息安全保障合同
- 2025年度股票賬戶代理操作與投資者關(guān)系維護(hù)協(xié)議
- 2025年度生態(tài)園區(qū)物業(yè)公司管理費(fèi)減免與環(huán)保責(zé)任協(xié)議
- 2025年度物業(yè)維修工程與社區(qū)文化活動合作合同
- 二零二五年度商鋪?zhàn)赓U及節(jié)假日促銷合作合同
- 日語專八分類詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語課外積累:Hello,China《你好中國》1-20詞塊摘錄課件
- 化學(xué)選修4《化學(xué)反應(yīng)原理》(人教版)全部完整PP課件
- 茶文化與茶健康教學(xué)課件
- 降水預(yù)報(bào)思路和方法
- 虛位移原理PPT
- QE工程師簡歷
- 輔音和輔音字母組合發(fā)音規(guī)則
- 2021年酒店餐飲傳菜員崗位職責(zé)與獎罰制度
評論
0/150
提交評論