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第10章Java語(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習(xí)題

返回總目錄210.1JDBC編程技術(shù)綜述—JDBC的概念及特點(diǎn)返回目錄JDBC是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI,可以為多種關(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程序代碼。

Java語(yǔ)言是編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言之一。JDBC提供了Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的接口,因而,JDBC擴(kuò)展了Java語(yǔ)言的技能。例如,可以使用Java和JDBCAPI發(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ù)綜述—JDBC的使用方法Java應(yīng)用程序與JDBC以及數(shù)據(jù)庫(kù)系統(tǒng)之間的關(guān)系如下圖所示返回目錄410.1JDBC編程技術(shù)綜述—JDBC的使用方法

從圖中可以看出,Java應(yīng)用程序通過(guò)JDBCAPI(java.sql)與數(shù)據(jù)庫(kù)連接,而實(shí)際的動(dòng)作則是由JDBC驅(qū)動(dòng)程序管理器(JDBCDriverManager)通過(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ù)綜述—JDBC-ODBC橋JDBC-ODBC橋是一種JDBC驅(qū)動(dòng)程序,它通過(guò)將JDBC操作轉(zhuǎn)換為ODBC(OpenDataBaseConnectivity)操作來(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包與Java2SDK一起自動(dòng)安裝,無(wú)須另外的特殊配置。返回目錄610.1JDBC編程技術(shù)綜述—JDBCURLJDBCURL提供了一種標(biāo)識(shí)數(shù)據(jù)庫(kù)的方法,可以使相應(yīng)的驅(qū)動(dòng)程序能夠識(shí)別該數(shù)據(jù)庫(kù)并與它建立連接。標(biāo)準(zhǔn)的JDBCURL的格式如下。jdbc:<子協(xié)議>:<子名稱>JDBCURL由三個(gè)部分組成,各個(gè)部分之間用冒號(hào)分隔。<子協(xié)議>是指數(shù)據(jù)庫(kù)連接的方式。<子名稱>可以根據(jù)子協(xié)議的改變而變化。

JDBC-ODBC橋驅(qū)動(dòng)程序使用ODBC子協(xié)議,該子協(xié)議的URL格式如下。

jdbc:odbc:<data-source-name>[<sttribute-namel>=<attribute-valuel>]…[<attribute-namen>=<attribute-valuen>]返回目錄710.2建立ODBC數(shù)據(jù)源—JDBCURL

(1)進(jìn)入ODBC數(shù)據(jù)源環(huán)境。打開(kāi)Windows中的控制面板,雙擊“數(shù)據(jù)源(ODBC)”圖標(biāo),選擇“用戶DSN”標(biāo)簽頁(yè),出現(xiàn)如圖所示的畫(huà)面。畫(huà)面中顯示了已有的數(shù)據(jù)源名稱。返回目錄810.2建立ODBC數(shù)據(jù)源—JDBCURL

(2)創(chuàng)建新的數(shù)據(jù)源。在上圖所示的畫(huà)面中,單擊“添加”按鈕出現(xiàn)如圖所示的畫(huà)面。返回目錄910.2建立ODBC數(shù)據(jù)源—JDBCURL

此時(shí)選擇“MicrosoftAccessDriver(*.mdb)”作為新數(shù)據(jù)源驅(qū)動(dòng)程序,單擊“完成”按鈕,出現(xiàn)如圖所示的畫(huà)面。返回目錄1010.2建立ODBC數(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)如圖所示的畫(huà)面。

返回目錄/byby/jdyc/1110.2建立ODBC數(shù)據(jù)源—JDBCURL(4)設(shè)置用戶的登錄名稱和密碼。返回目錄1210.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)—JDBC訪問(wèn)數(shù)據(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)程序的方法為

Class.forName("sun.jdbc.orbc.JdbcOdbcDriver")返回目錄1310.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)—JDBC訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟2.創(chuàng)建數(shù)據(jù)庫(kù)連接創(chuàng)建和指定數(shù)據(jù)庫(kù)的連接需要使用DriverManager類的getConnection()方法,其一般的使用格式如下:

ConnectionConn=DriverManager.getConnection(URL,user,password);

該方法返回的是一個(gè)Connection對(duì)象。這里的URL是一個(gè)字符串,代表了將要連接的數(shù)據(jù)源,即具體的數(shù)據(jù)庫(kù)位置。不同的JDBC驅(qū)動(dòng)程序其URL是不同的。通過(guò)ODBC連接數(shù)據(jù)庫(kù)的例子如下:

Class.forName("sun.jdbc.orbc.JdbcOdbcDriver");ConnectionConn=DriverManager.getConnection("jdbc;odbc;jxgl,songbo,songbo");返回目錄1410.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)—JDBC訪問(wèn)數(shù)據(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é)果集,Statement對(duì)象會(huì)將結(jié)果集返回給一個(gè)ResultSet對(duì)象。例如,創(chuàng)建Statement對(duì)象是使用Connection接口的createStatement()方法來(lái)實(shí)現(xiàn)的。

Statementsmt=conn.createStatement();Statement對(duì)象創(chuàng)建好之后,就可以使用該對(duì)象的executeQuery()方法來(lái)執(zhí)行數(shù)據(jù)庫(kù)查詢語(yǔ)句,executeQuery()方法返回一個(gè)ResultSet類的對(duì)象,它包含了SQL查詢語(yǔ)句執(zhí)行的結(jié)果。例如,

ResultSetrs=smt.executeQuery("SELECT*FROMstudent");返回目錄1510.3JDBC程序設(shè)計(jì)關(guān)鍵技術(shù)—JDBC訪問(wèn)數(shù)據(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接口的close()方法來(lái)手動(dòng)關(guān)閉。關(guān)閉Statement對(duì)象和Connection對(duì)象可以分別使用各自的close()方法。返回目錄1610爸.3給JD風(fēng)BC程序熊設(shè)計(jì)憐關(guān)鍵久技術(shù)—連接描數(shù)據(jù)康庫(kù)【邊學(xué)圍邊練10議.1械】中使葡用的Dr其iv螺er父Ma玻na勸ge斗r接口靜用于迎管理JD薯BC驅(qū)動(dòng)程序廳,并蓮負(fù)責(zé)狀建立Ja外va程序只和數(shù)雪據(jù)庫(kù)掃的連執(zhí)接?;痹谑孤延肑D只BC驅(qū)動(dòng)挎程序之前捏,必皺須先慎加載JD寨BC驅(qū)動(dòng)兇程序更并向Dr寒iv暈er罵Ma壟na碌ge鍬r接口州注冊(cè)秩之后上才能使清用。供加載脾和注免冊(cè)驅(qū)巷動(dòng)程央序可腫以使子用Cl亂as辭s.汪fo究rN碌am也e(獅)方法踐來(lái)完監(jiān)成。Dr舉iv凝er獲Ma功na暗ge悄r接口戚提供犯的常乞用方返法如旨下所撈示。(1)Co罵nn抖ec牧ti澤on革g懷et戚Co圣nn踐ec攤ti炕on嘩(袍St鞋ri扯ng壁u固rl嶼,澤St揉ri伏ng共u喂se輩r,已S駁tr筒in拋gpa策ss筒wo岡rd寧)。功能宜:返色回?cái)?shù)怎據(jù)庫(kù)閣的連各接。(2)Dr育iv藍(lán)er稱g婆er雙Dr腹iv導(dǎo)er與(鎖St噴ri御ng發(fā)u涉rl職)。功能腰:在撥已經(jīng)適向Dr階iv舌er域Ma鍋na型ge按r注冊(cè)黨的驅(qū)角動(dòng)程份序中霧尋找沈一個(gè)退能夠然打開(kāi)所硬指定當(dāng)?shù)臄?shù)呀據(jù)庫(kù)旅的驅(qū)街動(dòng)程照序。返回礦目錄1710吉.3園JD遙BC程序佳設(shè)計(jì)讓關(guān)鍵廳技術(shù)—更新允數(shù)據(jù)序庫(kù)操感作在已戀經(jīng)建摩立的Ac她ce摟ss數(shù)據(jù)嗎庫(kù)st姑ud冊(cè)en樸t.喊md美b中創(chuàng)頂建一泰個(gè)數(shù)賭據(jù)表膏,表拉的名磨字是st耽ud丸en娛t,數(shù)套據(jù)表削的結(jié)芒構(gòu)如煙圖所雨示。返回丙目錄1810梢.3梨JD助BC程序駱設(shè)計(jì)跌關(guān)鍵遭技術(shù)—更新棋數(shù)據(jù)針庫(kù)操裁作數(shù)據(jù)劇表中祝的數(shù)儉據(jù)如稀下圖劇所示返回歲目錄/byby/jsjmqz/1910狗.3句JD捏BC程序纖設(shè)計(jì)瞞關(guān)鍵尋技術(shù)—檢索知結(jié)果嘩集Re昏su孟lt廊Se乳t接口園提供門(mén)的常疤用方容法如膜下。(1)bo薪ol喉ea意n忽fi叼rs虹t(圓)。(2)bo榜ol銷ea鹿n古la晶st販()。(3)bo呢ol巖ea森n唱ne蝴xt泰()。(4)bo齒ol拴ea鎖n會(huì)pr運(yùn)ev康io隆us挎()。(5)bo太ol維ea騾n犬ge禿tB酷oo掩le衫an朵(i獻(xiàn)nt酷C荒ol瞧um爬nI犯nd耽ex梨)。(6)St腸ri帆ng便g良et疏St借ri婆ng牧(i桶nt著C綱ol捎um烘nI罪nd芳ex戒)。(7)In博te巾ge黑rI略nt莫g攪et織In死t(找in筋t史Co曠lu尚mn檔In臘de鞏x)。(8)lo么ng俘g紅et褲Lo鎖ng誓(i慶nt李C識(shí)ol毀um四nI莫nd義ex躲)。(9)fl寨oa財(cái)t嚷ge咽tF租lo傅at尺(i褲nt耍C業(yè)ol狐um擁nI拳nd冰ex辟)。(10)do盲ub終le搶g熱et箏Nu潤(rùn)mb校er拖ic遣(i兔nt冰C槳ou欲mn柜In戲de歲x,遲in沫t撲sc社al章e)。(11)Nu息mb藝er嚼ic焦g季et掏Nu功mb互er炎ic吹(i汗nt擔(dān)C繞ol品um勉nI睬nd淚ex鵝,桑i赴nt洗s倒ca帆le氏)。(12)Da兆te扯g襖et襲Da復(fù)te叼(i僑nt謊C震ol樣um釣nI探nd釣ex午)。2010舉.3拐J(rèn)D品BC程序件設(shè)計(jì)車關(guān)鍵遵技術(shù)—?jiǎng)討B(tài)唉數(shù)據(jù)裳庫(kù)訪石問(wèn)在使

溫馨提示

  • 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)論