freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο髷?shù)據(jù)庫(kù)xindice的應(yīng)用系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)-資料下載頁(yè)

2025-08-02 22:32本頁(yè)面
  

【正文】 ourses/sc[sid=39。s00139。]/cid。resultSet = (xpath)。results = ()。while (()) {Resource res = ()。String text = (String) ()。(course)。(text)。(text)。pos1 = (Query\)。pos2 = (/cid)。if (pos1 != 1) {(pos1 = + pos1)。cid = (pos1 +7, pos2)。(cid = + cid)。String xpath1 = /courses/course[cid=39。 + cid + 39。]/ame。ResourceSet resultSet1 = (xpath1)。ResourceIterator results1 = ()。while (()) {Resource res1 = ()。String text1 = (String) ()。(text1)。(text1)。}// (br)。}}(/course)。這里實(shí)現(xiàn)了嵌套查詢,從代碼中可以看到,首先根據(jù)第一層查詢獲得學(xué)生所選課程編號(hào),由于結(jié)果集游標(biāo)results每次獲取資源時(shí)都是一個(gè)XML節(jié)點(diǎn),因此利用這個(gè)特點(diǎn),使用String字符串中的indexOf()和substring()函數(shù),精確提取重要信息cid(課程編號(hào)),然后把cid作為第二層查詢的參數(shù),從存儲(chǔ)課程信息的那個(gè)XML文檔中查到課程信息。 Xupdate的應(yīng)用 Xindice提供的Xupdate接口,從第五步開(kāi)始有所不同。(5) 獲取一個(gè)XUpdateQueryService對(duì)象。XUpdateQueryService service = (XUpdateQueryService) (XUpdateQueryService, )。(6) 利用xupdate字符串,執(zhí)行更新操作。String xupdate= xupdate:modifications version=\\ +xmlns:xupdate=\\+xupdate:remove select=\/students/student[sid =39。+userid+39。]\/+/xupdate:modifications 。(xupdate)。 利用Xupdate增加數(shù)據(jù)利用Xupdate增加數(shù)據(jù)關(guān)鍵在于Xupdate字符串的寫(xiě)法。演示系統(tǒng)中用到的Xupdate字符串中的參數(shù)全部是從JSP頁(yè)面上獲取到的,所以獲取參數(shù)的正確性也是非常重要的,否則插入數(shù)據(jù)庫(kù)中的數(shù)據(jù)就是臟數(shù)據(jù),在往數(shù)據(jù)庫(kù)中插入數(shù)據(jù)之前可以先把數(shù)據(jù)輸出到控制臺(tái)上來(lái)檢查數(shù)據(jù)是否正確。由于演示系統(tǒng)中沒(méi)有用到XML Schema,所以一些驗(yàn)證操作需要在JAVA代碼中來(lái)完成。往數(shù)據(jù)庫(kù)中插入數(shù)據(jù)之前,應(yīng)先用Xpath根據(jù)主鍵來(lái)查詢數(shù)據(jù)庫(kù)中是否已經(jīng)存在該XML節(jié)點(diǎn),若已經(jīng)存在就不往數(shù)據(jù)庫(kù)中插入該個(gè)XML節(jié)點(diǎn)了。利用JAVA中字符串可以拼接的特性來(lái)寫(xiě)出符合需求的Xupdate更新字符串,由于Xupdate往XML文檔中插入節(jié)點(diǎn)必須定位到XML中的一個(gè)節(jié)點(diǎn),所以在存儲(chǔ)學(xué)生信息的XML文檔中需要加入了一個(gè)定位節(jié)點(diǎn),用于每次插入數(shù)據(jù)時(shí)進(jìn)行XML節(jié)點(diǎn)定位。增加學(xué)生信息的Xupdate字符串如下:xudpate=xupdate:modifications version=\\ +xmlns:xupdate=\\+xupdate:insertafter select=\/students/student[sid=39。s0000000000000000000000000000039。]\+xupdate:element name=\student\+sid+userid+/sid+sname+username+/sname+ssex+sex+/ssex+class_id+classid+/class_id+psw+password+/psw+/xupdate:element+/xupdate:insertafter+/xupdate:modifications。其中的userid、username、sex、classid、password都是從JSP頁(yè)面上獲得的,這樣根據(jù)需求就可以寫(xiě)出不同的Xupdate字符串了。 利用Xupdate刪除數(shù)據(jù)利用Xupdate刪除數(shù)據(jù)的操作比增加數(shù)據(jù)的操作稍微簡(jiǎn)單點(diǎn),因?yàn)樗玫降膮?shù)就一個(gè)主鍵就好了,在演示系統(tǒng)中實(shí)現(xiàn)了類似關(guān)系數(shù)據(jù)庫(kù)中的那種級(jí)聯(lián)刪除操作。下面舉一個(gè)實(shí)例來(lái)說(shuō)明級(jí)聯(lián)刪除操作的實(shí)現(xiàn)過(guò)程。這個(gè)例子是系統(tǒng)管理員刪除一個(gè)班級(jí)信息的情景。當(dāng)系統(tǒng)管理員刪除一個(gè)班級(jí)信息時(shí),他也應(yīng)該一并刪除班級(jí)里的同學(xué)信息以及班級(jí)里同學(xué)的選課信息。完成上面描述的操作總共需要三步完成。第一步,根據(jù)班級(jí)編號(hào)刪除班級(jí)信息。Xupdate字符串如下:xupdate = xupdate:modifications version=\\ + xmlns:xupdate=\\+ xupdate:removeselect=\/classes/class[class_id=39。+class_id+39。]\/+ /xupdate:modifications。第二步,根據(jù)班級(jí)編號(hào)從存儲(chǔ)學(xué)生信息的那個(gè)XML文檔中查到班級(jí)同學(xué)的學(xué)號(hào),再根據(jù)學(xué)號(hào)從存儲(chǔ)學(xué)生選課信息的那個(gè)XML文檔中刪除同學(xué)選課記錄。其實(shí)現(xiàn)代碼如下:xpath = /students/student[class_id=39。 + class_id + 39。]/sid。XPathQueryService service1 = (XPathQueryService) (XPathQueryService, )。ResourceSet resultSet = (xpath)。ResourceIterator results = ()。Resource res 。String text。String sid =null。while(()){res = ()。text = (String) ()。pos1= ()。pos2 = (/sid)。sid = (pos1+1, pos2)。xpath= xupdate:modifications version=\\ +xmlns:xupdate=\\+xupdate:remove select=\/select_courses/sc[sid =39。+sid+39。]\/+ /xupdate:modifications 。(xpath)。(xpath)。}第三步,根據(jù)班級(jí)編號(hào)從存儲(chǔ)班級(jí)同學(xué)信息的XML文檔中刪除該班級(jí)里的所有同學(xué)信息。其Xupdate更新字符串如下:xupdate= xupdate:modifications version=\\ +xmlns:xupdate=\\+xupdate:remove select=\/students/student[class_id =39。+class_id+39。]\/+/xupdate:modifications 。以上三步簡(jiǎn)單介紹了演示系統(tǒng)中的級(jí)聯(lián)刪除算法。這里主要是利用JAVA中的變量來(lái)臨時(shí)保存重要字段信息,然后利用JAVA進(jìn)行一步一步的刪除。 XLST的應(yīng)用 動(dòng)態(tài)生成XML,這個(gè)XML文檔是由一個(gè)個(gè)子節(jié)點(diǎn)組合而成的。下面就介紹這個(gè)XML的組合過(guò)程。在演示系統(tǒng)中動(dòng)態(tài)生成XML的過(guò)程是在Java servlet中進(jìn)行的,通過(guò)servlet中的PrintWriter對(duì)象out將XML代碼輸出到瀏覽器上。根據(jù)XML的文檔描述結(jié)構(gòu),首先需要通過(guò)對(duì)象out輸出XML頭文件,代碼如下:(?xml version=\\ encoding=\UTF8\??xmlstylesheet type=\text/xsl\ href=\../Xlst/\?)。輸出頭文件后,接著要輸出根節(jié)點(diǎn),(results)。然后再利用Xpath查詢需要的信息,通過(guò)out對(duì)象輸出查詢的節(jié)點(diǎn)。最后通過(guò)out對(duì)象關(guān)閉根節(jié)點(diǎn),(/results);這樣一個(gè)完整的XML文檔就輸出到瀏覽器上了。這里有一個(gè)不足之處就是每次通過(guò)Xpath查詢的結(jié)果不能保存到本地磁盤(pán)上,因?yàn)椴樵兺曛缶椭苯油鶠g覽器上輸出了。如果要保存查詢結(jié)果,只能在瀏覽器上的頁(yè)面上右擊,查看源文件,就可以看到完整的XML文檔了,然后保存下來(lái)。 編寫(xiě)XSL樣式表 編寫(xiě)XLST一個(gè)要注意的地方就是在保證輸出樣式的同時(shí),一定要緊緊依照XML文檔的描述結(jié)構(gòu)來(lái)寫(xiě),否則就很容易出錯(cuò)。編寫(xiě)XLST的第一步就是要設(shè)計(jì)輸出的頁(yè)面,這樣X(jué)LST的大體結(jié)構(gòu)才有著落。歸根到底XLST還是一個(gè)XML文件,所以需要先寫(xiě)XML的文件頭,然后再寫(xiě)XLST的樣式版本、命名空間等。為了輸出HTML,XLST的轉(zhuǎn)化樣式必須符合HTML的樣式,同時(shí)又必須符合XML的語(yǔ)法規(guī)則。經(jīng)常存儲(chǔ)在XML文檔中的信息是亂序的,如果只按照XML中的信息順序輸出來(lái)不加排序,頁(yè)面顯示結(jié)果肯定是無(wú)序的,這里就需要用XLST下的一個(gè)元素xsl:sort,對(duì)含有信息的節(jié)點(diǎn)進(jìn)行排序,這樣才能輸出有序信息,經(jīng)常含有有用信息的節(jié)點(diǎn)不是一個(gè)而是多個(gè),這時(shí)就需要用到XLST下的另一個(gè)元素xsl:foreach逐個(gè)節(jié)點(diǎn)瀏覽,下面是一個(gè)實(shí)例代碼。xsl:foreach select=results/yet_coursexsl:sort select=cid /trtd width=39。150px39。 height=39。25px39。xsl:valueof select=cid //tdtd width=39。150px39。 height=39。25px39。xsl:valueof select=ame //td/tr/xsl:foreach上面的代碼是對(duì)每個(gè)yet_course節(jié)點(diǎn)按照cid進(jìn)行排序,然后再輸出課程信息。在XLST技術(shù)中還有一個(gè)很好用的元素xsl:if,如需放置針對(duì)XML文件內(nèi)容的條件測(cè)試,就需要向XSL文檔添加xsl:if元素。其語(yǔ)法為:xsl:if test=expression 如果條件成立則輸出... /xsl:if使用時(shí)只需要在XSL文件中的xsl:foreach元素內(nèi)部添加xsl:if元素即可。如下實(shí)例:xsl:foreach select=catalog/cd xsl:if test=price amp。gt。 10 tr tdxsl:valueof select=title//td tdxsl:valueof select=artist//td /tr /xsl:if /xsl:foreach XML中調(diào)用XSLT幾乎所有主要的瀏覽器均支持XML+XSLT結(jié)構(gòu)的頁(yè)面。;;;、XSLT和Xpath。因此要以不同的方式顯示XML的內(nèi)容,我們可以借助于XSLT。演示系統(tǒng)中的XML文檔是動(dòng)態(tài)生成的,調(diào)用XSLT方式是在XML頭文件下增加一個(gè)調(diào)用XSLT的節(jié)點(diǎn),如下代碼:(?xml version=\\ encoding=\UTF8\??xmlstylesheet type=\text/xsl\ href=\Xlst/\?)。這里調(diào)用經(jīng)常會(huì)出現(xiàn)一個(gè)問(wèn)題就是瀏覽器提示系統(tǒng)找不到指定資源。這是由于上面的href鏈接的XLST路徑不對(duì),這時(shí)就要檢查下XSL樣式表的路徑是否寫(xiě)正確了。 數(shù)據(jù)庫(kù)查詢分析進(jìn)行數(shù)據(jù)庫(kù)查詢分析時(shí),分析查詢效率的一個(gè)重要依據(jù)是數(shù)據(jù)庫(kù)的查詢時(shí)間。而數(shù)據(jù)庫(kù)的查詢時(shí)間再細(xì)分下去就可分為數(shù)據(jù)庫(kù)的連接時(shí)間、獲取結(jié)果集的時(shí)間和處理結(jié)果集的時(shí)間。如何獲得這三個(gè)時(shí)間不同的人會(huì)采取不同的方法。演示系統(tǒng)中是在servlet中利用JAVA中的GregorianCalendar類來(lái)獲取時(shí)間,這個(gè)類的變量可以把時(shí)間精確到毫秒,便于計(jì)算時(shí)間差。定義多個(gè)GregorianCalendar類的變量,然后再計(jì)算時(shí)間差即可得到三個(gè)時(shí)間。這里要注意的是各個(gè)時(shí)間變量定義的位置要搞清楚,要看清楚代碼到哪里數(shù)據(jù)庫(kù)已經(jīng)連接上了,哪里放置時(shí)間變量來(lái)獲取時(shí)間,計(jì)算各個(gè)含義的時(shí)間差最準(zhǔn)確。影響數(shù)據(jù)庫(kù)查詢速度的一個(gè)重要方面是查詢語(yǔ)句的寫(xiě)法。在查詢語(yǔ)句中應(yīng)該少用通配符,做到最小化查詢范圍;盡量避免相關(guān)子查詢,因?yàn)椴樵兊那短讓哟卧蕉?,查詢的效率就?huì)降低。在演示系統(tǒng)中分別寫(xiě)了三個(gè)Xpath查詢語(yǔ)句來(lái)查詢大量數(shù)據(jù)。三個(gè)語(yǔ)句為:String xpath = /test/student[sid=39。 +s001 + 39。]/cid。String xpath1 = /test/student[sid=39。 +s001 + 39。]/*。String xpath2 = /test/student/*。上面的三個(gè)查詢語(yǔ)句中第一個(gè)查詢語(yǔ)句最精確直接查詢的就是某個(gè)student節(jié)點(diǎn)下的cid子節(jié)點(diǎn);第二查詢語(yǔ)句把某個(gè)student節(jié)點(diǎn)下的所有子節(jié)點(diǎn)都查出來(lái)了;第三個(gè)查詢語(yǔ)句把文件名為test的XML文檔下的所有student節(jié)點(diǎn)都查出來(lái)了。從這三個(gè)查詢語(yǔ)句,可以明顯看出查詢數(shù)據(jù)的精確性和查詢范圍,這對(duì)查詢效率來(lái)說(shuō)是十分重要的。上面三個(gè)查詢語(yǔ)句的查詢時(shí)間差距拉大主要在獲取結(jié)果集的時(shí)間
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1