第五章JDBC數(shù)據(jù)庫(kù)編程基礎(chǔ)知識(shí)_第1頁(yè)
第五章JDBC數(shù)據(jù)庫(kù)編程基礎(chǔ)知識(shí)_第2頁(yè)
第五章JDBC數(shù)據(jù)庫(kù)編程基礎(chǔ)知識(shí)_第3頁(yè)
第五章JDBC數(shù)據(jù)庫(kù)編程基礎(chǔ)知識(shí)_第4頁(yè)
第五章JDBC數(shù)據(jù)庫(kù)編程基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章JDBC數(shù)據(jù)庫(kù)編程基礎(chǔ)知識(shí)數(shù)據(jù)庫(kù)開發(fā)在當(dāng)前的Web開發(fā)與應(yīng)用中占有著十分重要的地位,信息科技進(jìn)步的日新月異,實(shí)際應(yīng)用基本都是對(duì)數(shù)據(jù)的保存,加工和處理,所以應(yīng)用軟件的開發(fā)離不開數(shù)據(jù)庫(kù)知識(shí)。鑒于數(shù)據(jù)庫(kù)操作的重要性,本章就此技術(shù)進(jìn)行詳細(xì)的介紹,以方便大家學(xué)習(xí)使用。Java提供的JDBC(JavaDatabaseConnectivity)使得我們?cè)跀?shù)據(jù)庫(kù)編程中如魚得水,實(shí)現(xiàn)操作平臺(tái)獨(dú)立以及供應(yīng)商獨(dú)立的目標(biāo)。本章中,我們會(huì)首先搭建起JSP開發(fā)數(shù)據(jù)庫(kù)環(huán)境,然后對(duì)SQL數(shù)據(jù)庫(kù)操作語言進(jìn)行簡(jiǎn)單介紹,再通過具體的示例,讓讀者整體了解和掌握此項(xiàng)技術(shù)。5.1JDBCJDBC是Java數(shù)據(jù)庫(kù)編程的總稱,是JDK重要組成部分,指java.sql包中提供的所有支持?jǐn)?shù)據(jù)庫(kù)編程的API類。JDBC同時(shí)提供對(duì)第三方數(shù)據(jù)庫(kù)提供商在編寫驅(qū)動(dòng)軟件時(shí)遵循的協(xié)議和規(guī)范。JDBC通過drivers與數(shù)據(jù)庫(kù)通訊和交流,驅(qū)動(dòng)軟件翻譯Java程序中對(duì)數(shù)據(jù)庫(kù)訪問的代碼,使之成為數(shù)據(jù)庫(kù)語言,同時(shí),當(dāng)數(shù)據(jù)庫(kù)將數(shù)據(jù)或信息傳給Java程序,驅(qū)動(dòng)軟件又將其翻譯為Java語言的代碼和數(shù)據(jù)。當(dāng)前主流的數(shù)據(jù)庫(kù)提供商有很多,如IBM的DB2,微軟的SQLServer,MySQL,甲骨文的Oracle等。當(dāng)要添加數(shù)據(jù)到數(shù)據(jù)庫(kù)時(shí),不同數(shù)據(jù)庫(kù)中添加操作使用的程序可能都不盡相同,是否就意味著必須針對(duì)不同的數(shù)據(jù)庫(kù)編寫相應(yīng)的程序呢?實(shí)際上,根本無需如此麻煩,Java提供的驅(qū)動(dòng)軟件稱為JDBC/ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫(kù)連接協(xié)議)橋,通過這個(gè)ODBC作為我們存取數(shù)據(jù)庫(kù)的接口,可以輕易的存取不同數(shù)據(jù)庫(kù)。ODBC最初是MS公司提供的數(shù)據(jù)庫(kù)編程協(xié)議模式,現(xiàn)成為JDK中java.sql包的數(shù)據(jù)庫(kù)驅(qū)動(dòng)軟件。JDBC包含了“應(yīng)用程序”(Application)、“驅(qū)動(dòng)管理器”(DriverManager)、“驅(qū)動(dòng)程序”(Driver)、“數(shù)據(jù)來源”(DataSources)4個(gè)要素,關(guān)系如下圖5-1所示。JAVAApplicationJAVAApplicationJDBCDriverManagerDriverDriverDriverOracleSQLServerODBCSourcesJDBCAPI圖圖5-1JDBC體系架構(gòu)的層次根據(jù)數(shù)據(jù)庫(kù)不同,有些JDBC驅(qū)動(dòng)軟件必須安裝在用戶端計(jì)算機(jī)中,而有些則要求安裝于數(shù)據(jù)庫(kù)服務(wù)器中,因此在JDBC編程中,開發(fā)人員需了解具體數(shù)據(jù)庫(kù)對(duì)JDBC驅(qū)動(dòng)的要求。5.2數(shù)據(jù)庫(kù)開發(fā)環(huán)境搭建進(jìn)行數(shù)據(jù)庫(kù)的開發(fā),第一步工作就是安裝數(shù)據(jù)庫(kù)軟件,前面已經(jīng)介紹了,目前常用的主流數(shù)據(jù)庫(kù)有MySQL,SQLServer,DB2,已經(jīng)Oracle等等。從學(xué)習(xí)目的的考慮,本書選擇MySQL數(shù)據(jù)庫(kù)作為JDBC編程示例,簡(jiǎn)單介紹JSP數(shù)據(jù)庫(kù)開發(fā)環(huán)境的搭建過程。5.2.1MySQL數(shù)據(jù)庫(kù)的下載和安裝

MySQL是當(dāng)前主流的數(shù)據(jù)庫(kù)之一,很多應(yīng)用軟件利用MySQL作為數(shù)據(jù)庫(kù);

MySQL以及JDBC驅(qū)動(dòng)軟件很容易在本地計(jì)算機(jī)上安裝和調(diào)試,方便讀者控制,管理,便于學(xué)習(xí);

MySQL可以免費(fèi)下載,讀者獲取渠道很方便。MySQL的官方安裝程序下載路徑:http://,下載后直接運(yùn)行安裝程序即可。步驟如下:下載數(shù)據(jù)庫(kù)壓縮文件解壓到指定文件夾下,得道用來執(zhí)行的安裝的Setup.exe文件。雙擊Setup.exe文件,進(jìn)行安裝,進(jìn)入安裝向?qū)Ы缑?。如圖5-2所示,單擊“Next”按鈕進(jìn)入安裝類型選擇界面。圖5-3MySQL安裝類型選擇界面圖5-3MySQL安裝類型選擇界面圖5-2MySQL安裝向?qū)Ы缑嬖趫D5-3所示中,有3種類型可供選擇,分別是“Typical”典型安裝,“Completele”完全安裝和“Custom”自定義安裝。此處,為使讀者深入了解MySQL安裝過程,我們選擇第三點(diǎn),單擊“Custom”按鈕進(jìn)入組件安裝定制界面。如圖5-4所示,單擊“Change”按鈕可以改變程序的安裝路徑,同時(shí)可以在列表框中選擇需要安裝的組件,選擇好后點(diǎn)擊“Next”按鈕進(jìn)入圖5-5界面用來顯示前面用戶選擇的所有信息,確認(rèn)無誤后單擊“Install”按鈕進(jìn)行安裝。出現(xiàn)如圖5-6所示界面時(shí)說明MySQL已經(jīng)安裝完成,接下來需要對(duì)其進(jìn)行簡(jiǎn)單配置。選中“ConfiguretheMySQLServernow”復(fù)選框,單擊“Finish”按鈕,進(jìn)行服務(wù)器的配置。圖5-5MySQL安裝信息確認(rèn)界面圖圖5-5MySQL安裝信息確認(rèn)界面圖5-4MySQL組件安裝選擇界面在圖5-7MySQL配置類型選擇界面中,有“DetailedConfiguration”(詳細(xì)配置)和“StandardConfiguration”(標(biāo)準(zhǔn)配置)2種選項(xiàng)。這里考慮到我們是要快速啟動(dòng)MySQL而不用考慮服務(wù)器配置的用戶,所以這里我們選擇后者“StandardConfiguration”,單擊此單選按鈕,并單擊“Next”按鈕。圖5-7MySQL圖5-7MySQL服務(wù)器配置選項(xiàng)界面圖5-6MySQL安裝完成界面圖5-8是進(jìn)入“WindowsOptions”(Windows選項(xiàng))對(duì)話框,這里可以將MySQL設(shè)置為Windows服務(wù),這里定義服務(wù)名為MySQL,將MySQL配置為自啟動(dòng)服務(wù)。選擇“InstallAsWindowsService”選項(xiàng),點(diǎn)擊“Next”按鈕進(jìn)入“SecurityOptions”(安全選項(xiàng))對(duì)話框。如圖5-9界面中,可以進(jìn)行設(shè)置MySQL中root賬號(hào)的用戶密碼,root是MySQL中默認(rèn)的管理員賬號(hào),當(dāng)然也可以創(chuàng)建匿名用戶。設(shè)置密碼完成后,單擊“Next”按鈕進(jìn)入圖5-10界面。圖5-9MySQL安全設(shè)置界面圖圖5-9MySQL安全設(shè)置界面圖5-8MySQL服務(wù)配置界面圖5-10MySQL執(zhí)行設(shè)置界面,進(jìn)入5-10界面單擊“Execute”按鈕,執(zhí)行剛剛配置的操作,執(zhí)行完成后出現(xiàn)圖5-11所示界面表示安裝全部完成,單擊“Finish”按鈕退出配置向?qū)АD5-11完成安裝界面圖圖5-11完成安裝界面圖5-10MySQL執(zhí)行設(shè)置界面上述10步全部完成,MySQL安裝和配置過程就全部結(jié)束,可以進(jìn)行后面的啟動(dòng)操作過程了。5.2.2MySQL數(shù)據(jù)庫(kù)安裝測(cè)試首先祝賀您成功安裝MySQL,下面介紹測(cè)試MySQL服務(wù)器和基本的操作指令,為后續(xù)的JDBC數(shù)據(jù)庫(kù)編程做好準(zhǔn)備。首先,必須啟動(dòng)MySQL服務(wù)器。在DOS命令行窗口中輸入:mysqld或者:mysqld–console運(yùn)行MySQL服務(wù)器。這時(shí)MySQL服務(wù)器將啟動(dòng)并運(yùn)行。當(dāng)然,如果這時(shí)出現(xiàn)“mysqld既不是內(nèi)部或外部命令,也不是可執(zhí)行程序或批處理文件”的解釋,那么原因在于環(huán)境變量沒有添加,處理辦法是找到MySQL安裝文件路徑,將期中的bin文件夾路徑添加到WindowsPath中即可。當(dāng)然,也可以通過開始菜單,找到MySQLServer,輸入密碼直接登錄服務(wù)器,如圖5-12。圖圖5-12登錄MySQL服務(wù)器此時(shí),進(jìn)入MySQL客戶端的工作狀態(tài),以“mysql>”為提示符。如果要與MySQL服務(wù)器斷開連接,使用命令QUIT即可。5.3SQL基礎(chǔ)知識(shí)SQL全稱是“結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)”SQL作為指令式語言簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),被眾多計(jì)算機(jī)公司和軟件公司所采用。同時(shí)經(jīng)由各公司不斷修改補(bǔ)充和完善,應(yīng)用在幾乎所有的當(dāng)代數(shù)據(jù)庫(kù)中,其可以說是計(jì)算機(jī)應(yīng)用歷史上最成功語言的典范,現(xiàn)發(fā)展成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語言。5.3.1SQL的特點(diǎn)SQL語言集數(shù)據(jù)查詢(dataquery)、數(shù)據(jù)操縱(datamanipulation)、數(shù)據(jù)定義(datadefinition)和數(shù)據(jù)控制(datacontrol)功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點(diǎn)和優(yōu)點(diǎn)。其主要特點(diǎn)包括:1.綜合統(tǒng)一SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,語言風(fēng)格統(tǒng)一,可以獨(dú)立完成數(shù)據(jù)庫(kù)生命周期中的全部活動(dòng),包括定義關(guān)系模式、錄入數(shù)據(jù)以建立數(shù)據(jù)庫(kù)、查詢、更新、維護(hù)、數(shù)據(jù)庫(kù)重構(gòu)、數(shù)據(jù)庫(kù)安全性控制等一系列操作要求,這就為數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)提供了良好的環(huán)境,例如用戶在數(shù)據(jù)庫(kù)投入運(yùn)行后,還可根據(jù)需要隨時(shí)地逐步地修改模式,并不影響數(shù)據(jù)庫(kù)的運(yùn)行,從而使系統(tǒng)具有良好的可擴(kuò)充性。2.高度非過程化非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言是面向過程的語言,用其完成某項(xiàng)請(qǐng)求,必須指定存取路徑。而用SQL語言進(jìn)行數(shù)據(jù)操作,用戶只需提出“做什么”,而不必指明“怎么做”,因此用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動(dòng)完成。這不但大大減輕了用戶負(fù)擔(dān),而且有利于提高數(shù)據(jù)獨(dú)立性。3.面向集合的操作方式SQL語言采用集合操作方式,不僅查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對(duì)象也可以是元組的集合。非關(guān)系數(shù)據(jù)模型采用的是面向記錄的操作方式,任何一個(gè)操作其對(duì)象都是一條記錄。例如查詢所有平均成績(jī)?cè)?0分以上的學(xué)生姓名,用戶必須說明完成該請(qǐng)求的具體處理過程,即如何用循環(huán)結(jié)構(gòu)按照某條路徑一條一條地把滿足條件的學(xué)生記錄讀出來。4.以同一種語法結(jié)構(gòu)提供兩種使用方式SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。作為嵌入式語言,SQL語句能夠嵌入到高級(jí)語言(例如C、PB)程序中,供程序員設(shè)計(jì)程序時(shí)使用。而在兩種不同的使用方式下,SQL語言的語法結(jié)構(gòu)基本上是一致的。這種以統(tǒng)一的語法結(jié)構(gòu)提供兩種不同的使用方式的作法,為用戶提供了極大的靈活性與方便性。5.語言簡(jiǎn)潔,易學(xué)易用SQL功能機(jī)槍,完成核心功能實(shí)際只用到了9個(gè)動(dòng)詞(SELECT,CREATE,DROP,ALTER,INSERT,UPDATE,DELETE,GRANT,REVOKE),同時(shí)它接近于英語口語,因此容易學(xué)習(xí)和使用。5.3.2SQL的六種基本指令與JDBC數(shù)據(jù)庫(kù)編程有關(guān)的基本SQL指令有如下6種:CREATE——?jiǎng)?chuàng)建數(shù)據(jù)表;SELECT——選擇數(shù)據(jù)庫(kù)中的指定數(shù)據(jù);UPDATE——更新數(shù)據(jù)表;INSERT——表中插入新記錄;DELETE——?jiǎng)h除記錄;DROP——?jiǎng)h除數(shù)據(jù)表。5.3.3創(chuàng)建和刪除數(shù)據(jù)庫(kù)1.用CreateDatabase創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)SQL語句如下:CREATEDATABASE數(shù)據(jù)庫(kù)名稱功能:用給定的名字創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)已經(jīng)存在則發(fā)生錯(cuò)誤。如上圖,命令行中寫入語句,創(chuàng)建一個(gè)名為DR的數(shù)據(jù)庫(kù),完成則返回:QueryOK,1rowaffected(0.02sec)否則會(huì)返回:ERROR1007:Can’tcreatedatabase‘dr’;databaseexists出錯(cuò)提示該數(shù)據(jù)庫(kù)已經(jīng)存在。2.用SHOW顯示已有的數(shù)據(jù)庫(kù)顯示已有數(shù)據(jù)庫(kù)語句如下:SHOWDATABASES功能:列出在MySQL服務(wù)器主機(jī)上的數(shù)據(jù)庫(kù)3.用DROPDATABASE刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)的語句如下:DROPDATABASE數(shù)據(jù)庫(kù)名稱功能:刪除指定名稱的數(shù)據(jù)庫(kù)中的表和數(shù)據(jù)庫(kù),慎重使用該命令。如果要?jiǎng)h除的數(shù)據(jù)庫(kù)不存在,則會(huì)報(bào)錯(cuò),所以在刪除數(shù)據(jù)庫(kù)之前判斷這個(gè)數(shù)據(jù)庫(kù)是否存在,也可使用IFEXISTS阻止一個(gè)錯(cuò)誤的發(fā)生,從而進(jìn)行刪除代碼的改善。刪除成功則如上圖所示,否則會(huì)報(bào)錯(cuò),返回如下。5.3.4創(chuàng)建、刪除、修改數(shù)據(jù)表表是數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的基本單位。一個(gè)表包含若干個(gè)字段或記錄,表的操作包括創(chuàng)建新表,修改表和刪除表。這些操作都是數(shù)據(jù)庫(kù)中最基本也是最重要的操作。1.用CREATETABLE創(chuàng)建數(shù)據(jù)表創(chuàng)建表是指在已存在的數(shù)據(jù)庫(kù)中建立新表,這是簡(jiǎn)歷數(shù)據(jù)庫(kù)最重要的一步,是進(jìn)行其他表操作的基礎(chǔ)。MySQL中,創(chuàng)建表通過SQL語句CREATETABLE實(shí)現(xiàn)的,其語法形式如下:CREATETABLE表名(屬性名數(shù)據(jù)類型[完整性約束條件],屬性名數(shù)據(jù)類型[完整性約束條件],屬性名數(shù)據(jù)類型);JDBC數(shù)據(jù)庫(kù)設(shè)計(jì)方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論