Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第1頁(yè)
Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第2頁(yè)
Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第3頁(yè)
Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第4頁(yè)
Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1第第10章章 Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù) 教學(xué)內(nèi)容 10.1JDBC編程技術(shù)綜述 10.2建立ODBC數(shù)據(jù)源 10.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù) 10.4圖形界面的JDBC編程實(shí)例 10.5 210.1JDBC編程技術(shù)綜述編程技術(shù)綜述JDBC的概念及特點(diǎn)的概念及特點(diǎn) JDBC是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一的訪問(wèn)接口。JDBC由一組用Java語(yǔ)言編寫(xiě)的類與接口組成,通過(guò)調(diào)用這些類和接口所提供的方法,用戶能夠以一致的方式連接多種不同的數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)而使用標(biāo)準(zhǔn)的SQL語(yǔ)言來(lái)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),而不必再為每一種數(shù)據(jù)庫(kù)系統(tǒng)編寫(xiě)不同的Java程

2、序代碼。 Java語(yǔ)言是編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言之一。JDBC提供了Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的接口,因而,JDBC擴(kuò)展了Java語(yǔ)言的技能。例如,可以使用Java和JDBC API發(fā)布含有Applet的網(wǎng)頁(yè),而該Applet使用的信息可以來(lái)自遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫(kù)。即使在企業(yè)內(nèi)部,也可以使用JDBC通過(guò)局域網(wǎng)將企業(yè)員工使用的計(jì)算機(jī)連接到一個(gè)或多個(gè)企業(yè)內(nèi)部的數(shù)據(jù)庫(kù)服務(wù)器上,而這些數(shù)據(jù)庫(kù)服務(wù)器基于的操作系統(tǒng)與這些員工所使用計(jì)算機(jī)的操作系統(tǒng)的類型是無(wú)關(guān)的。310.1JDBC編程技術(shù)綜述編程技術(shù)綜述JDBC的使用方法的使用方法 Java應(yīng)用程序與JDBC以及數(shù)據(jù)庫(kù)系統(tǒng)之間的關(guān)系

3、如下圖所示410.1JDBC編程技術(shù)綜述編程技術(shù)綜述JDBC的使用方法的使用方法 從圖中可以看出,Java應(yīng)用程序通過(guò)JDBC API(java.sql)與數(shù)據(jù)庫(kù)連接,而實(shí)際的動(dòng)作則是由JDBC驅(qū)動(dòng)程序管理器(JDBC Driver Manager)通過(guò)JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行連接。也就是說(shuō),真正提供存取數(shù)據(jù)庫(kù)功能的是JDBC驅(qū)動(dòng)程序,用戶如果想要存取某一種具體的數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)的數(shù)據(jù),就必須要擁有對(duì)應(yīng)于該數(shù)據(jù)庫(kù)系統(tǒng)的驅(qū)動(dòng)程序。本書(shū)所有的JDBC程序設(shè)計(jì)實(shí)例采用的都是Access數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序。510.1JDBC編程技術(shù)綜述編程技術(shù)綜述JDBC-ODBC橋橋 JDBC-ODB

4、C橋是一種JDBC驅(qū)動(dòng)程序,它通過(guò)將JDBC操作轉(zhuǎn)換為ODBC(Open DataBase Connectivity)操作來(lái)實(shí)現(xiàn)JDBC操作。JDBC-ODBC橋驅(qū)動(dòng)程序由JavaSoft公司提出,Intersolv公司研制。提出這種類型驅(qū)動(dòng)程序的原因,是由于OBDC已經(jīng)成為數(shù)據(jù)庫(kù)訪問(wèn)的業(yè)界標(biāo)準(zhǔn),并得到了廣泛應(yīng)用。利用JDBC-ODBC橋可以使程序開(kāi)發(fā)人員不需要學(xué)習(xí)更多的知識(shí)就可以編寫(xiě)JDBC應(yīng)用程序,并能夠充分利用現(xiàn)有的大量ODBC數(shù)據(jù)源。 JDBC-ODBC橋驅(qū)動(dòng)程序可以使JDBC能夠訪問(wèn)幾乎所有類型的數(shù)據(jù)庫(kù),它隨著sun.jdbc.odbc包與Java 2 SDK一起自動(dòng)安裝,無(wú)須另外的

5、特殊配置。 610.1JDBC編程技術(shù)綜述編程技術(shù)綜述JDBCURL JDBC URL提供了一種標(biāo)識(shí)數(shù)據(jù)庫(kù)的方法,可以使相應(yīng)的驅(qū)動(dòng)程序能夠識(shí)別該數(shù)據(jù)庫(kù)并與它建立連接。標(biāo)準(zhǔn)的JDBC URL的格式如下。jdbc:: JDBC URL由三個(gè)部分組成,各個(gè)部分之間用冒號(hào)分隔。是指數(shù)據(jù)庫(kù)連接的方式??梢愿鶕?jù)子協(xié)議的改變而變化。 JDBC-ODBC橋驅(qū)動(dòng)程序使用ODBC子協(xié)議,該子協(xié)議的URL格式如下。 jdbc:odbc:= =710.2建立建立ODBC數(shù)據(jù)源數(shù)據(jù)源JDBCURL (1)進(jìn)入ODBC數(shù)據(jù)源環(huán)境。 打開(kāi)Windows中的控制面板,雙擊“數(shù)據(jù)源(ODBC)”圖標(biāo),選擇“用戶DSN”標(biāo)簽頁(yè),

6、出現(xiàn)如圖所示的畫(huà)面。畫(huà)面中顯示了已有的數(shù)據(jù)源名稱。810.2建立建立ODBC數(shù)據(jù)源數(shù)據(jù)源JDBCURL (2)創(chuàng)建新的數(shù)據(jù)源。 在上圖所示的畫(huà)面中,單擊“添加”按鈕出現(xiàn)如圖所示的畫(huà)面。910.2建立建立ODBC數(shù)據(jù)源數(shù)據(jù)源JDBCURL 此時(shí)選擇“Microsoft Access Driver(*.mdb)”作為新數(shù)據(jù)源驅(qū)動(dòng)程序,單擊“完成”按鈕,出現(xiàn)如圖所示的畫(huà)面。 1010.2建立建立ODBC數(shù)據(jù)源數(shù)據(jù)源JDBCURL (3)為新數(shù)據(jù)源命名,并與指定的數(shù)據(jù)庫(kù)關(guān)聯(lián)。在上圖“數(shù)據(jù)源名”文本框里為數(shù)據(jù)源命名,這里輸入的是jxgl。為了使這個(gè)數(shù)據(jù)源與某個(gè)數(shù)據(jù)庫(kù)關(guān)聯(lián),此時(shí)單擊“選擇”按鈕,出現(xiàn)如圖所

7、示的畫(huà)面。 1110.2建立建立ODBC數(shù)據(jù)源數(shù)據(jù)源JDBCURL(4)設(shè)置用戶的登錄名稱和密碼。1210.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)JDBC訪問(wèn)數(shù)訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟據(jù)庫(kù)的基本步驟 1加載JDBC驅(qū)動(dòng)程序 在和某一特定數(shù)據(jù)庫(kù)建立連接之前,必須首先加載一種可用的JDBC驅(qū)動(dòng)程序,這需要使用java.sql包中的下列方法來(lái)加載驅(qū)動(dòng)程序。 Class.forName(DriverName); DriverName是要加載的JDBC驅(qū)動(dòng)程序名稱。驅(qū)動(dòng)程序名稱根據(jù)數(shù)據(jù)庫(kù)廠商提供的驅(qū)動(dòng)程序的種類來(lái)確定。由于本書(shū)采用的是Access數(shù)據(jù)庫(kù),所以加載Access數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的方法為 Cla

8、ss.forName(sun.jdbc.orbc.JdbcOdbcDriver)1310.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)JDBC訪問(wèn)數(shù)訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟據(jù)庫(kù)的基本步驟 2創(chuàng)建數(shù)據(jù)庫(kù)連接 創(chuàng)建和指定數(shù)據(jù)庫(kù)的連接需要使用DriverManager類的getConnection()方法,其一般的使用格式如下: Connection Conn=DriverManager.getConnection(URL,user,password); 該方法返回的是一個(gè)Connection對(duì)象。這里的URL是一個(gè)字符串,代表了將要連接的數(shù)據(jù)源,即具體的數(shù)據(jù)庫(kù)位置。不同的JDBC驅(qū)動(dòng)程序其URL是不同的

9、。 通過(guò)ODBC連接數(shù)據(jù)庫(kù)的例子如下: Class.forName(sun.jdbc.orbc.JdbcOdbcDriver); Connection Conn=DriverManager.getConnection(jdbc;odbc;jxgl,songbo,songbo);1410.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)JDBC訪問(wèn)數(shù)訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟據(jù)庫(kù)的基本步驟 3執(zhí)行SQL語(yǔ)句 在與某個(gè)特定數(shù)據(jù)庫(kù)建立連接之后,這個(gè)鏈接會(huì)話就可以用于發(fā)送SQL語(yǔ)句。在發(fā)送語(yǔ)句之前,必須創(chuàng)建一個(gè)Statement類的對(duì)象,該對(duì)象負(fù)責(zé)將SQL語(yǔ)句發(fā)送給數(shù)據(jù)庫(kù)。如果SQL語(yǔ)句運(yùn)行后產(chǎn)生結(jié)果集,Stat

10、ement對(duì)象會(huì)將結(jié)果集返回給一個(gè)ResultSet對(duì)象。例如,創(chuàng)建Statement對(duì)象是使用Connection接口的createStatement()方法來(lái)實(shí)現(xiàn)的。 Statement smt=conn.createStatement(); Statement對(duì)象創(chuàng)建好之后,就可以使用該對(duì)象的executeQuery()方法來(lái)執(zhí)行數(shù)據(jù)庫(kù)查詢語(yǔ)句,executeQuery()方法返回一個(gè)ResultSet類的對(duì)象,它包含了SQL查詢語(yǔ)句執(zhí)行的結(jié)果。例如, ResultSet rs= smt.executeQuery(SELECT * FROM student);1510.3JDBC程序設(shè)計(jì)

11、關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)JDBC訪問(wèn)數(shù)訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟據(jù)庫(kù)的基本步驟 4接收并處理SQL的返回結(jié)果 JDBC接收結(jié)果是通過(guò)ResultSet類的對(duì)象來(lái)實(shí)現(xiàn)的。一個(gè)ResultSet對(duì)象包含了執(zhí)行某個(gè)SQL語(yǔ)句后滿足條件的所有的行。它還提供了對(duì)這些行的訪問(wèn),用戶可以通過(guò)一組方法來(lái)訪問(wèn)當(dāng)前行的不同列。通常結(jié)果集的形式是一張帶有表頭和相應(yīng)數(shù)值的表。 5關(guān)閉創(chuàng)建的各個(gè)對(duì)象 一個(gè)Statement對(duì)象在同一時(shí)間只能打開(kāi)一個(gè)結(jié)果集,所以如果在同一個(gè)Statement對(duì)象中運(yùn)行下一條SQL語(yǔ)句,第一條SQL語(yǔ)句生成的ResultSet對(duì)象就被自動(dòng)關(guān)閉了。當(dāng)然也可以通過(guò)調(diào)用ResultSet接口的clos

12、e()方法來(lái)手動(dòng)關(guān)閉。關(guān)閉Statement對(duì)象和Connection對(duì)象可以分別使用各自的close()方法。1610.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù) 【邊學(xué)邊練10.1】中使用的DriverManager接口用于管理JDBC驅(qū)動(dòng)程序,并負(fù)責(zé)建立Java程序和數(shù)據(jù)庫(kù)的連接。在使用JDBC驅(qū)動(dòng)程序之前,必須先加載JDBC驅(qū)動(dòng)程序并向DriverManager接口注冊(cè)之后才能使用。加載和注冊(cè)驅(qū)動(dòng)程序可以使用Class.forName()方法來(lái)完成。 DriverManager接口提供的常用方法如下所示。 (1)Connection getConnection (S

13、tring url, String user, String password)。 功能:返回?cái)?shù)據(jù)庫(kù)的連接。 (2)Driver gerDriver (String url)。 功能:在已經(jīng)向DriverManager注冊(cè)的驅(qū)動(dòng)程序中尋找一個(gè)能夠打開(kāi)所指定的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序。1710.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)更新數(shù)據(jù)庫(kù)操更新數(shù)據(jù)庫(kù)操作作 在已經(jīng)建立的Access數(shù)據(jù)庫(kù)student.mdb中創(chuàng)建一個(gè)數(shù)據(jù)表,表的名字是student,數(shù)據(jù)表的結(jié)構(gòu)如圖所示。1810.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)更新數(shù)據(jù)庫(kù)操更新數(shù)據(jù)庫(kù)操作作 數(shù)據(jù)表中的數(shù)據(jù)如下圖所示1910.3JDB

14、C程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)檢索結(jié)果集檢索結(jié)果集 ResultSet接口提供的常用方法如下。(1)boolean first()。(2)boolean last()。(3)boolean next()。(4)boolean previous()。(5)boolean getBoolean(int ColumnIndex)。(6)String getString(int ColumnIndex)。(7)IntegerInt getInt(int ColumnIndex)。(8)long getLong(int ColumnIndex)。(9)float getFloat(int ColumnIndex)。(10)double getNumberic(int CoumnIndex,int scale)。(11)Numberic getNumberic(int ColumnIndex , int scale)。(12)Date getDate(int ColumnIndex)。2010.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)程序設(shè)計(jì)關(guān)鍵技術(shù)動(dòng)態(tài)數(shù)據(jù)庫(kù)訪動(dòng)態(tài)數(shù)據(jù)庫(kù)訪問(wèn)問(wèn) 在使用Statement對(duì)象時(shí),每次查詢都需要將SQL語(yǔ)句傳遞給數(shù)據(jù)庫(kù),當(dāng)多次執(zhí)行同一查詢語(yǔ)句時(shí),會(huì)影響執(zhí)行效率,此時(shí)可以考慮使用Prep

溫馨提示

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

評(píng)論

0/150

提交評(píng)論