《Jsp語言與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)》數(shù)據(jù)庫語言_第1頁
《Jsp語言與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)》數(shù)據(jù)庫語言_第2頁
《Jsp語言與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)》數(shù)據(jù)庫語言_第3頁
《Jsp語言與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)》數(shù)據(jù)庫語言_第4頁
《Jsp語言與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)》數(shù)據(jù)庫語言_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Jsp語言與動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)授課老師:林偉君

聯(lián)系方式:教學(xué)實(shí)驗(yàn)中心811室第四章內(nèi)容提要、課程結(jié)構(gòu)

本課程系統(tǒng)地介紹了JSP應(yīng)用開發(fā)體系與環(huán)境配置〔第一章〕JSP頁面元素〔第二章〕JSP內(nèi)置對(duì)象〔第三章〕JSP對(duì)數(shù)據(jù)庫的操作〔第四章〕JSP對(duì)Bean的調(diào)用〔第五章〕第1章JSP應(yīng)用開發(fā)體系與環(huán)境配置①軟件編程體系②介紹JSP技術(shù)、優(yōu)點(diǎn)、缺點(diǎn)和應(yīng)用前景③介紹如何安裝和配置JSP的運(yùn)行環(huán)境第2章JSP頁面元素①HTML根底知識(shí)、常用標(biāo)記②介紹JSP頁面結(jié)構(gòu)③JSP的編譯指令、操作指令和代碼課程結(jié)構(gòu)1第3章JSP頁面元素①JSP常用六大根本對(duì)象第4章JSP對(duì)數(shù)據(jù)庫的操作①SQL指令操作數(shù)據(jù)庫、數(shù)據(jù)庫的創(chuàng)立、備份等②JDBC訪問數(shù)據(jù)庫③介紹JSP頁面對(duì)數(shù)據(jù)庫的操作方法第5章JSP對(duì)Bean的調(diào)用①JavaBean組件程序設(shè)計(jì)課程結(jié)構(gòu)2JSP應(yīng)用開發(fā)體系與環(huán)境配置軟件編程體系。JSP技術(shù)概述。JSP環(huán)境配置。學(xué)習(xí)目標(biāo)軟件編程體系了解什么是JSP技術(shù)熟悉JSP的優(yōu)點(diǎn)、缺點(diǎn)了解JSP技術(shù)開展前景JSP安裝配置數(shù)據(jù)庫應(yīng)用開發(fā)簡(jiǎn)介作為有效的數(shù)據(jù)存儲(chǔ)和組織管理工具,數(shù)據(jù)庫的應(yīng)用日益廣泛目前主流的數(shù)據(jù)庫產(chǎn)品有Oracle、SQLServer、DB2和SyBase等多種。在數(shù)據(jù)庫開發(fā)領(lǐng)域中,有三個(gè)方面需要掌握:SQL語言、ODBC數(shù)據(jù)訪問接口和JDBC數(shù)據(jù)庫訪問接口。學(xué)習(xí)目標(biāo)熟練掌握SQL常用的語句SQL語言概述SQL〔StructuredQueryLanguage〕是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,是由國際標(biāo)準(zhǔn)組織提出的,各種關(guān)系型數(shù)據(jù)庫都支持SQL指令,Oracle在根本的SQL根底上進(jìn)行了擴(kuò)充。SQL語句有如下的兩大特點(diǎn)〔1〕SQL是一種類似于英語的語言,很容易理解和書寫。〔2〕SQL語言是非過程化的語言〔第四代語言〕。SQL集DDL〔DataDefinitionLanguage:數(shù)據(jù)定義語言〕,DML〔DataManipulationLanguage:數(shù)據(jù)操作語言〕和DCL〔DataControlLanguage:數(shù)據(jù)控制語言〕于一體。用SQL語言可以實(shí)現(xiàn)數(shù)據(jù)庫生命周期的全部活動(dòng)。SQL語句分類SQL分類描述數(shù)據(jù)定義語言(DDL)數(shù)據(jù)定義語言(DDL)用于定義、修改或者刪除數(shù)據(jù)庫對(duì)象,如CreateTable等數(shù)據(jù)查詢語言(DQL)數(shù)據(jù)查詢語句(DataQueryLanguage,DQL)用于對(duì)數(shù)據(jù)進(jìn)行檢索。如最常用的Select語句數(shù)據(jù)操縱語言(DML)數(shù)據(jù)操縱語言(DML)用于訪問、建立或者操縱在數(shù)據(jù)庫中已經(jīng)存在數(shù)據(jù),如Select、Insert、Update和Delete等等。事務(wù)控制語言(TCL)事務(wù)控制語言(TransactControlLanguage)管理DML語句所做的修改,是否保存修改或者放棄修改。如:Commit、Rollback、Savepoint、SetTransaction等命令。數(shù)據(jù)控制語言(DCL)數(shù)據(jù)控制語言(DCL)管理對(duì)數(shù)據(jù)庫內(nèi)對(duì)象的訪問權(quán)限和授予和回收,如Grant、Revoke等等。根本SQL語句根本的SQL語句包括DQL和DML。也就是對(duì)數(shù)據(jù)庫最常用的四大根本操作:查詢〔Select〕、插入〔Insert〕、更新〔Update〕和刪除〔Delete〕DQL的3種根本格式〔1〕1.根本句型一:〔最簡(jiǎn)單的SELECT語句〕SELECT字段名FROM數(shù)據(jù)表例1.SELECT*FROMgrade功能說明:將grade表中的所有字段取出來。例2.SELECTxhid,ynameFROMgrade功能說明:將grade表中xhid和yname字段取出來。例3.SELECTxhid,yname,english+mathsas總成績(jī)FROMgrade功能說明:將grade表中的xhid和yname取出來,并將english、maths成績(jī)相加產(chǎn)生虛擬列總成績(jī)。DQL的3種根本格式〔2〕2.根本句型二:〔使用條件查詢〕SELECT字段名FROM數(shù)據(jù)表WHERE篩選條件測(cè)試句型如下。例1.SELECT*FROMgradeWHEREmaths>60功能說明:把所有maths成績(jī)大于60分的記錄選出來。例2.SELECT*FROMgradeWHEREmaths=95orenglish=90功能說明:把maths成績(jī)等于95分或者english成績(jī)等于90分的人選出來。DQL的3種根本格式〔3〕3.根本句型三:〔進(jìn)行排序〕SELECT字段名FROM數(shù)據(jù)表ORDERBY字段名測(cè)試句型如下。〔1〕SELECT*FROMgradeORDERBYmaths注:從低到高排序功能說明:從grade表中取出所有字段,并按maths成績(jī)排序?!?〕SELECT*FROMgradeORDERBYmaths,english功能說明:從grade表中取出所有字段,并按maths成績(jī)排序,如果maths成績(jī)相同那么按照english成績(jī)排序?!?〕SELECT*FROMgradeORDERBYmathsdesc注:從高到低排序功能說明:從grade表中取出所有字段,并按maths成績(jī)倒序。〔4〕SELECTtop5*FROMgrade功能說明:從grade表中取出前五條記錄的所有字段。DML的根本格式〔一〕〔1〕DELETE指令:刪除數(shù)據(jù)記錄。根本語法:DELETEFROM數(shù)據(jù)表WHERE條件例:DELETEfromgradeWHEREenglish=0功能說明:刪除所有english成績(jī)?yōu)榱愕挠涗?,如果沒有WHERE子句,那么刪除所有記錄。〔2〕UPDATE指令:更新數(shù)據(jù)記錄。根本語法:UPDATE數(shù)據(jù)表SET字段值=新值WHERE條件例1:UPDATEgradeSETenglish=english+10說明:將grade表中所有人的english成績(jī)加10分DML的根本格式〔二〕〔3〕INSERTINTO指令:添加數(shù)據(jù)記錄。根本格式1:INSERTINTO數(shù)據(jù)表VALUES〔字段新值〕根本格式2:INSERTINTO數(shù)據(jù)表〔字段一,字段二,……〕VALUES〔字段新值〕其中關(guān)鍵字兩種格式的區(qū)別是:當(dāng)values含有數(shù)據(jù)庫表所有字段的值,并且順序和數(shù)據(jù)庫字段一致時(shí),就可以省略數(shù)據(jù)庫表后面的字段名稱。例1:INSERTINTOgrade(xhid,yname,english)VALUES(‘1234’,‘vim’,70)例2:INSERTINTOgradeVALUES('5678','gigi','女',80,90)功能說明:該語句等價(jià)于:INSERTINTOgrade(xhid,yname,xb,english,maths)VALUES('5678','gigi','女',80,90)聚合函數(shù)聚合函數(shù)在信息管理系統(tǒng)經(jīng)常使用,功能是做一些根本的統(tǒng)計(jì)和計(jì)算。聚合函數(shù)有5個(gè),分別是SUM函數(shù)、AVG函數(shù)、COUNT函數(shù)、MAX函數(shù)和MIN函數(shù)。聚合函數(shù)實(shí)例〔1〕SUN函數(shù),功能是算出某個(gè)字段的總值。例.SELECTSUM(maths)AsTotalFROMgrade功能說明:求出所有學(xué)生maths成績(jī)總和,這個(gè)數(shù)值的列名為Total?!?〕AVG函數(shù),功能是算出某個(gè)字段的平均值。例.SELECTAVG(maths)AsAverageFROMgrade功能說明:求出所有學(xué)生maths成績(jī)平均分,這個(gè)數(shù)值的列名為Average。〔3〕COUNT函數(shù),功能是算出返回記錄的行數(shù)。例.SELECTCOUNT(*)AsCountsFROMgrade功能說明:求出滿足條件的記錄總數(shù)?!?〕MAX函數(shù),功能是算出某個(gè)字段的最大值。例.SELECTMAX(maths)AsFirstFROMgrade功能說明:求出所有學(xué)生maths成績(jī)的最高分,這個(gè)數(shù)值的列名為First?!?〕MIN函數(shù),功能是算出某個(gè)字段的總值。例.SELECTMIN(maths)AsLastFROMgrade功能說明:求出所有學(xué)生maths成績(jī)的最低分,這個(gè)數(shù)值的列名為L(zhǎng)ast。分組查詢分組查詢包括GROUPBY和HAVING關(guān)鍵字。比方計(jì)算某班男生女生的數(shù)學(xué)平均分,利用可以利用分組查詢完成??梢允褂谩癝ELECTxb,AVG(maths)as平均分FROMgradeGROUPBYxb〞得到男生和女生的數(shù)學(xué)maths平均分,交叉查詢考慮3個(gè)表:學(xué)生表〔Student〕、課程表〔Course〕和選課表〔SC〕表的關(guān)系如圖其中:〔1〕學(xué)生表中的sno表示學(xué)生學(xué)號(hào),sname表示學(xué)生姓名?!?〕課程表中cno表示課程編號(hào),cname表示課程的名稱?!?〕選課表中的sno表示學(xué)生學(xué)號(hào),cno表示課程編號(hào)。查找選擇課程為“軟件工程〞的所有同學(xué)姓名?可以利用如下的SQL語句。SELECTb.snameFROMsca,studentb,coursecWHEREao=coANDa.sno=b.snoandcame='軟件工程'其中“sca〞表示給表sc起個(gè)別名為a,同樣“studentb〞是給student表起個(gè)別名b。該查詢實(shí)現(xiàn)了三個(gè)表之間的交叉查詢。對(duì)數(shù)據(jù)庫的操作<一>本章介紹頁面與數(shù)據(jù)庫之間的通訊.根據(jù)需要,將頁面數(shù)據(jù)保存到數(shù)據(jù)庫中,或者將數(shù)據(jù)庫中的數(shù)據(jù)展現(xiàn)在頁面上,或者執(zhí)行數(shù)據(jù)事務(wù)處理:數(shù)據(jù)查詢和數(shù)據(jù)更新。學(xué)習(xí)目標(biāo)理解數(shù)據(jù)源熟悉創(chuàng)立數(shù)據(jù)源的步驟理解JDBC-ODBC橋接器熟悉數(shù)據(jù)查詢技術(shù)熟悉數(shù)據(jù)更新技術(shù)1數(shù)據(jù)源java應(yīng)用程序與數(shù)據(jù)庫的連接方式中本書中采用JDBC-ODBC方式連接數(shù)據(jù)庫.這種連接方式分三個(gè)步驟:首先,創(chuàng)立一個(gè)數(shù)據(jù)源,其次,加載JDBC-ODBC驅(qū)動(dòng)程序,第三步,建立一個(gè)到數(shù)據(jù)庫的連接。數(shù)據(jù)源是對(duì)數(shù)據(jù)庫的一種映射。我們可以把數(shù)據(jù)源理解為數(shù)據(jù)庫本身,一個(gè)數(shù)據(jù)源對(duì)應(yīng)一個(gè)數(shù)據(jù)庫。本書以MicrosoftSQL2000數(shù)據(jù)庫為例。假設(shè)已創(chuàng)立了數(shù)據(jù)庫rr。假設(shè)采用的是windows2000操作系統(tǒng),我們?yōu)樵摂?shù)據(jù)庫創(chuàng)立數(shù)據(jù)源的步驟如下:1.在"管理工具"中選擇"ODBC數(shù)據(jù)源",如圖1所示。圖1數(shù)據(jù)源ODBC2.雙擊“ODBC數(shù)據(jù)源〞圖標(biāo),出現(xiàn)如圖2所示界面。該圖顯示了“用戶DSN"選項(xiàng)卡中的已有數(shù)據(jù)源的名稱。圖2顯示已有user數(shù)據(jù)源3.選擇“SystemDSN〞選項(xiàng)卡,單擊“添加"按鈕,增加新的數(shù)據(jù)源,如圖3所示。此對(duì)話框,為新增加的數(shù)據(jù)源選擇驅(qū)動(dòng)程序。圖3選擇驅(qū)動(dòng)程序4.因?yàn)橐L問MicrosoftSQL數(shù)據(jù)庫,選擇“SQLServer"選項(xiàng),單擊"完成"按鈕(為數(shù)據(jù)源選擇了驅(qū)動(dòng)程序),出現(xiàn)了設(shè)置數(shù)據(jù)源具體工程的對(duì)話框,如圖4所示。圖4配置數(shù)據(jù)源5.點(diǎn)擊“下一步〞出現(xiàn)身份驗(yàn)證窗口。配置情況如圖5所示。圖5配置情況6.選擇“更改默認(rèn)的數(shù)據(jù)庫為rr〞。在點(diǎn)擊“下一步〞。圖6配置完成7.在點(diǎn)擊“完成〞。圖7配置完成8.在點(diǎn)擊“測(cè)試數(shù)據(jù)庫〞。圖8配置完成9.測(cè)試局面。圖9配置完成2JDBC-ODBC橋接器JDBC-ODBC橋接器就是把應(yīng)用程序與數(shù)據(jù)源連接起來的驅(qū)動(dòng)程序。因此,創(chuàng)立了數(shù)據(jù)源以后,還要加載JDBC-ODBC橋接器,即加載驅(qū)動(dòng)程序。下面是加載驅(qū)動(dòng)程序的方式:try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){}

通過Class類的靜態(tài)方法forName(Stringdriver)加載JDBC-ODBC橋接器。3數(shù)據(jù)庫連接創(chuàng)立了數(shù)據(jù)源,加載了驅(qū)動(dòng)程序,應(yīng)用程序還是不能連接到數(shù)據(jù)庫。應(yīng)用程序要訪問數(shù)據(jù)庫,還必須創(chuàng)立一個(gè)到數(shù)據(jù)庫的連接。即創(chuàng)立一個(gè)連接對(duì)象。下面是創(chuàng)立連接對(duì)象的靜態(tài)方法:publicstaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQLException假設(shè)數(shù)據(jù)源名是“mydate〞,用戶登錄系統(tǒng)的帳號(hào)是user/password。下面是獲得連接對(duì)象的方法:

Connectionconn=DriverManager.getConnection(“jdbc:odbc:mydate〞,user,password);或者Connectionconn=DriverManager.getConnection(“jdbc:odbc:mydate〞);getConnection()方法是DriverManager類的一個(gè)靜態(tài)方法。對(duì)于Access數(shù)據(jù)庫連接,可以不要帳號(hào)參數(shù)就能建立連接對(duì)象。在程序的最后,應(yīng)該關(guān)閉Connection對(duì)象:publicvoidclose()throwsSQLException4數(shù)據(jù)庫事務(wù)處理一般來說,數(shù)據(jù)庫事務(wù)處理分兩種:一種是數(shù)據(jù)查詢,第二種是數(shù)據(jù)更新。數(shù)據(jù)更新包括數(shù)據(jù)插入、修改和刪除。Statement對(duì)象/Statement接口Statement對(duì)象用于將SQL語句發(fā)送到數(shù)據(jù)庫中。Statement接口提供了兩種執(zhí)行SQL語句的常用方法:publicResultSetexecuteQuery(Stringsql)throwsSQLException用于產(chǎn)生單個(gè)ResultSet的語句,例如SELECT語句。publicintexecuteUpdate(Stringsql)throwsSQLException用于執(zhí)行INSERT、UPDATE或DELETE語句以及SQLDDL語句,例如CREATETABLE和DROPTABLE。該方法返回一個(gè)整數(shù),指示受影響的行數(shù)。假設(shè)已經(jīng)連接到某數(shù)據(jù)庫,創(chuàng)立的連接對(duì)象是conn。那么數(shù)據(jù)查詢和數(shù)據(jù)更新步驟如下。1.數(shù)據(jù)查詢通過以下兩個(gè)步驟,獲得查詢結(jié)果集rs。(1)創(chuàng)立語句對(duì)象Statementstmt=conn.createStatement(inttype,intconcurrency);(2)獲得查詢結(jié)果集Stringsql="select*fromtablenamewhereexpression";//SQL查詢字符串ResultSetrs=stmt.executeQuery(sql);//獲得結(jié)果集rs2.數(shù)據(jù)更新通過以下兩個(gè)步驟,實(shí)現(xiàn)數(shù)據(jù)更新。(1).創(chuàng)立語句對(duì)象Statementstmt=conn.createStatement(inttype,intconcurrency);

(2).執(zhí)行更新Stringsql="sqlStatement";//插入或修改或刪除SQL字符串intnumber=stmt.executeUpdate(sql);//執(zhí)行更新操作說明:在數(shù)據(jù)查詢、數(shù)據(jù)更新事務(wù)中,一般采用無參的createStatement()方法創(chuàng)立語句對(duì)象。如果事務(wù)是隨機(jī)查詢、游動(dòng)查詢和用結(jié)果集更新數(shù)據(jù)庫,那么應(yīng)采用createStatement(inttype,intconcurrency)方法創(chuàng)立語句對(duì)象。下面是對(duì)該方法參數(shù)的說明。type的取值決定滾動(dòng)方式,即結(jié)果集中的游標(biāo)是否能上下滾動(dòng)。取值如下:

ResultSet.TYPE_FORWORD_ONLY結(jié)果集的游標(biāo)只能向下滾動(dòng)。

ResultSet.TYPE_SCROLL_INSENSITIVE結(jié)果集的游標(biāo)可以上下移動(dòng),當(dāng)數(shù)據(jù)庫變化時(shí),當(dāng)前結(jié)果集不變。

ResultSet.TYPE_SCROLL_SENSITIVE返回可滾動(dòng)的結(jié)果集。當(dāng)數(shù)據(jù)庫變化時(shí),當(dāng)前結(jié)果集同步改變。

concurrency的取值決定是否能用結(jié)果集更新數(shù)據(jù)庫。concurrency取值:

ResultSet.CONCUR_READ_ONLY不能用結(jié)果集更新數(shù)據(jù)庫中的表。

ResultSet.CONCUR_UPDATABLE能用結(jié)果集更新數(shù)據(jù)庫中的表。5ResultSet對(duì)象這種查詢中,獲得的結(jié)果集(ResultSet對(duì)象)中的游標(biāo)只能一行行地向下移動(dòng)。既不能向上移動(dòng)游標(biāo),

也不能跳行移動(dòng)游標(biāo)。

ResultSet對(duì)象由假設(shè)干行組成。ResultSet對(duì)象一次只能看到一個(gè)數(shù)據(jù)行,使用next()方法,使游標(biāo)移到下一行記錄。ResultSet對(duì)象可以用字段索引(第一列是1,第二列是2等等)為參數(shù),獲得對(duì)應(yīng)的字段值(記錄中的數(shù)據(jù)項(xiàng)),如方法getXxx(intcolumnIndex);也可以用字段名為參數(shù),獲得對(duì)應(yīng)的字段值(記錄中的數(shù)據(jù)項(xiàng)),如方法getXxx(StringcolumnName)。ResultSet對(duì)象的常用方法如表7-1所示。表1ResultSet類的常用方法返回類型方法名稱booleannext()bytegetByte(intcolumnIndex)DategetDate(intcolumnIndex)Doubleg

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論