Java數據庫訪問課件_第1頁
Java數據庫訪問課件_第2頁
Java數據庫訪問課件_第3頁
Java數據庫訪問課件_第4頁
Java數據庫訪問課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論