JDBC數據庫訪問技術_第1頁
JDBC數據庫訪問技術_第2頁
JDBC數據庫訪問技術_第3頁
JDBC數據庫訪問技術_第4頁
JDBC數據庫訪問技術_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

JDBC數據庫訪問技術

JDBC概述JDBC結構使用JDBC訪問數據庫的基本步驟JDBC類與接口JDBC的數據類型處理SQL例外一個連接數據庫的例子JDBC概述什么是JDBCJDBC(JavaDatabaseConnectivity),就是一個數據庫連接JavaAPI,屬于JavaAPI的一部分。JDBC為Java開發人員提供了一個行業標準API,它可以在Java應用(applet、servlet、jsp、EJB等等)同大量關系數據庫之間建立起獨立于數據庫的連接,如Oracle、Informix、SQLServer和Sybase等關系數據庫。API提供了數據庫調用層接口。

JDBC概述JDBC的功能連接到數據庫執行SQL語句,查詢數據庫產生查詢結果執行更新、插入和刪除動作執行存儲過程JDBC概述使用JDBC的好處開發人員只需要了解一組API,就可以訪問任何關系數據庫。不必為不同的數據庫重新編寫代碼。不必了解數據庫供應商的特定API。提供了標準API,而且獨立于供應商。幾乎每個數據庫供應商都具有幾種JDBC驅動。JDBC是標準Java2平臺的一部分。JDBC結構JDBC由兩部分組成JDBCAPI,一個純粹的基于Java的API,它支持Java應用到JDBC驅動管理器的通信。JDBC驅動管理器,它負責與某些數據庫驅動進行通信,某些數據庫驅動負責與具體的數據庫進行通信。JDBC結構JDBC數據庫驅動Java和JDBC提供了訪問SQLDBMS數據庫的映射,所以JDBC驅動可以應用于大多數主流數據庫。JDBC數據庫驅動具有四種類型:JDBC-ODBC橋驅動、部分Java驅動、中間件驅動和純Java驅動。JDBC結構JDBC-ODBC橋驅動這是最基本的驅動,在這里JDBC連接到ODBC,ODBC再連接到數據庫。JDBC-ODBC橋把Java程序中的JDBC方法轉換成ODBC的功能。RDBMSJDBC-ODBC橋驅動ODBC驅動客戶端JDBC結構部分Java驅動在這種類型的數據庫驅動中,JDBC連接到數據庫中。只有具備訪問計算機完全安全性的Java程序才能使用這種類型的驅動(applet不能用)。RDBMS部分Java驅動私有API一些JDBC調用客戶端JDBC結構中間件驅動在這種驅動中,JDBC連接到中間件,然后中間件連接到數據庫上。RDBMS中間件驅動客戶端中間件驅動服務器客戶端Network網絡協議JDBC結構純Java驅動這種類型驅動直接把JDBC調用轉化為DBMS使用的網絡協議,允許從客戶機上直接調用DBMS服務器。推薦在服務端Java開發中使用這種驅動,這就是“瘦”驅動。RDBMS純Java驅動私有協議純Java客戶端DBMS網絡協議JDBC結構JDBCAPI(分成兩個程序包)Java.sql核心API,這是Java2標準版的一部分。提供對數據庫更新、插入和刪除的類和接口。Javax.sql可選擴展API,這是Java2企業版的一部分。這部分API包含了基于Java命名和目錄接口(JNDI)的資源,以及管理連接池、分布式事務和數據行集的類。JDBC結構JDBC應用結構示意圖使用JDBC訪問數據庫的基本步驟1.加載一個JDBC驅動。2.定義一個URL連接。3.建立這個連接。4.建立一個SQL查詢語句的對象。5.執行這個SQL查詢語句。6.處理查詢結果集。7.關閉連接。JDBC類與接口Java.sql.Driver接口可以通過驅動進行數據庫訪問,驅動都是某一個特定的數據庫驅動的實現。連接到數據庫的應用程序要求具備該數據庫的特定驅動。DBMS供應商通常提供了相應的驅動,任何驅動必須實現Driver接口。驅動在應用程序中處理JDBC語句,并把它們包含的SQL參數發送給數據庫引擎。JDBC類與接口定義JDBC驅動(Driver)Driver的定義是非常簡單的,Driver要給出要用到的classname。如果要使用JDBC-ODBC橋驅動,定義是這樣的:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);在使用Class.forName之前,應先導入import語句。importjava.sql.*;如果使用JDBCDriver,是這樣定義的:Class.forName(“jdbc.driver_class_name”);連接OracleJdbc驅動:Class.forName(“oracle.jdbc.driver.OracleDriver”);連接mySQLJdbc驅動:Class.forName(“org.git.mm.mysql.Driver”);JDBC類與接口定義數據庫URL數據庫URL,是指一個完全合格的數據庫連接名稱,該名稱標識所要連接的數據庫和數據庫連接程序。要創建一個連接對象實例,必須以數據庫URL作為參數去激發DriverManager類的getConnection()方法。JDBC類與接口數據庫URL字符串表示:JDBC:PROTOCOL:NAMEJDBC是指對所有的JDBC數據庫URL中所用的數據庫驅動程序類型的關鍵字。PROTOCOL是指用戶要連接的數據庫類型。NAME提供建立連接時所需要的數據庫類型的額外信息。JDBC類與接口Java.sql.DriverManager類DriverManager類是JDBC的管理層,作用于用戶和驅動程序之間。DriverManager類跟蹤可用的驅動程序,并在數據庫和相應驅動程序之間建立連接。另外,DriverManager類也可處理諸如驅動程序登錄時間限制及登錄和跟蹤消息的顯示等事務。JDBC類與接口Java.sql.DriverManager類的方法當DriverManager激發getConnection()方法時,DriverManager類首先從它已加載的驅動程序池中找到一個可以接受該數據庫URL的驅動程序,然后請求該驅動程序使用相關的數據庫URL去連接到數據庫中。于是,getConnection()方法建立了與數據庫的連接。JDBC允許用戶使用調用DriverManager的方法getDriver()、getDrivers()、registerDriver()及Driver的connect()JDBC類與接口getConnection()方法返回一個連接對象。getConnection()方法的三種形式:getConnection(Stringurl)只是簡單地給定數據庫url,然后嘗試連接。getConnection(Stringurl,StringUser,StringPassword)給定數據庫url、數據庫的用戶名、數據庫的用戶使用密碼,然后嘗試連接。getConnection(Stringurl,java.util.Propertiesinformation)給定數據庫的url以及一個屬性集合作為參數,然后嘗試連接。JDBC類與接口Connection接口Connection接口表示到數據庫的連接,也就是在已經加載的Driver和數據庫之間建立連接,它定義了和數據庫的大部分交互。必須創建一個Connectionclass的實例,其中包括數據庫的信息。連接過程包括所執行的SQL語句和在該連接上所返回的結果。一個應用程序可與單個數據庫有一個或多個連接,或者可與許多數據庫有連接。JDBC類與接口在編程中,連接可以使用DriverManager.getConnection()來獲得,也可以使用數據源的DataSource.getConnection()來獲得。在默認情況下,Connection對象使用auto-commit的事務模式,這意味著當執行每個SQL語句后它自動提交結果。如果不是使用auto-commit的事務模式,那么在編程中要明確調用commit()方法來執行生效,否則數據庫的改變將不會被保存。JDBC類與接口Statement接口Statement用于執行SQL語句,返回結果。在默認情況下,一個Statement只能打開一個ResultSet對象。如果一個結果集和另一個結果集存在交叉讀取的情況,那么需要使用兩個Statement來產生這些ResultSet。JDBC類與接口Statement中的每個執行方法(Execute)都自動關閉當前的ResultSet對象。Statement對象用于將SQL語句發送到數據庫中。實際上有三種Statement對象,它們都作為在給定連接上執行SQL語句的包容器:Statement、PreparedStatement、CallableStatement。JDBC類與接口當打開一個數據庫的連接后,Java應用程序通常通過創建與執行一系列的SQL語句命令來實際使用該連接。這些SQL命令作為數據庫的語句執行,完成一些操作。JDBC支持三種類型語句:Statement:用來立即執行SQL語句。PreparedStatement:用來執行編譯后的SQL語句。CallableStatement:用來執行存儲過程。JDBC類與接口Statement對象用來執行靜態SQL語句,并獲得它的處理結果。可使用Connection對象中的createStatement()方法創建Statement對象,然后通過調用適當的方法來執行它。對于SELECT語句使用的方法是:executeQuery()對于UPDATE、DELETE或DDL等語句使用executeUpdate()方法。JDBC類與接口PreparedStatement對象該對象用來預編譯SQL語句,可以把SQL語句預編譯并存儲在PreparedStatement對象中,然后這個對象可以用來多次高效執行SQL語句。PreparedStatement接口擴展了Statement接口,PreparedStatement提供了對IN參數的支持,IN參數就是在創建SQL語句的時候,沒有指定具體值的參數。JDBC類與接口用?表示的參數標記可以用來指定輸入值。PreparedStatement引進了一系列的setXXX()方法,用來設置特定參數的值。XXX代表了數據類型。對于SELECT語句使用的方法是:executeQuery()對于UPDATE、DELETE或DDL等語句使用executeUpdate()方法。JDBC類與接口CallableStatement對象該接口擴展了PreparedStatement接口,可以使用存儲過程。它包含了執行和從存儲過程中得到結果的方法。該對象有Connection對象創建,要獲得CallableStatement對象,可以調用Connection對象的prepareCall()方法。JDBC類與接口它最多可以提供三種類型的參數:IN、OUT和INOUT。任何輸入參數必須使用setXXX()方法指定。任何輸出參數必須用registerOutParameter()方法注冊它們的數據類型。一旦設置了全部參數,可以調用CallableStatement的execute()方法。執行存儲過程后,可以使用getXXX()方法從輸出參數中得到值。JDBC類與接口ResultSet結果集代表執行查詢后的記錄,它以表的形式存在。ResultSet通常由Statement執行數據查詢而獲得。ResultSet對象維持結果集的當前指針,通常指向第一行的前一個位置。默認情況下,Result

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論