web程序設(shè)計(jì)課件CH5Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)_第1頁(yè)
web程序設(shè)計(jì)課件CH5Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)_第2頁(yè)
web程序設(shè)計(jì)課件CH5Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)_第3頁(yè)
web程序設(shè)計(jì)課件CH5Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)_第4頁(yè)
web程序設(shè)計(jì)課件CH5Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(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、第5章 Web數(shù)據(jù)庫(kù)程序設(shè)計(jì),1 Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù) 2 ODBC接口 3 數(shù)據(jù)庫(kù)語(yǔ)言SQL 4 使用ADO訪問(wèn)數(shù)據(jù)庫(kù) 5 用Connection對(duì)象連接數(shù)據(jù)庫(kù) 6 用RecordSet對(duì)象控制數(shù)據(jù) 7 用Command對(duì)象執(zhí)行數(shù)據(jù)庫(kù)操作 8 程序設(shè)計(jì)舉例,數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)在現(xiàn)有計(jì)算機(jī)軟件中占有很大的比例 本章將著重介紹一種有效的Web數(shù)據(jù)庫(kù)訪問(wèn)方案,即利用ASP服務(wù)器端的組件ActiveX Data Objects(ADO)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,5.1 Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),5.1.1 概述 Web數(shù)據(jù)庫(kù)系統(tǒng)不能僅依賴某個(gè)DBMS來(lái)實(shí)現(xiàn)整個(gè)應(yīng)用系統(tǒng),它是通過(guò)其他Web應(yīng)用程序,用標(biāo)準(zhǔn)的HTML

2、語(yǔ)言及其某些特定的擴(kuò)展功能開發(fā)的、以特殊形式訪問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用程序系統(tǒng) Web應(yīng)用系統(tǒng)一般采用Browser/WebServer/ApplicationServer模式實(shí)現(xiàn) Web訪問(wèn)數(shù)據(jù)庫(kù)的關(guān)鍵是與數(shù)據(jù)庫(kù)服務(wù)器間的接口,5.1.2 CGI,CGI(Common Gateway Interface,公關(guān)網(wǎng)關(guān)接口)是一種接口標(biāo)準(zhǔn),它使靜態(tài)的Web頁(yè)變?yōu)榻换ナ降拿襟w成為可能,圖6-1 通過(guò)CGI訪問(wèn)Web數(shù)據(jù)庫(kù)模型,5.1.3 ODBC,ODBC(Open Database Connectivity,開放式數(shù)據(jù)庫(kù)連接)是一個(gè)數(shù)據(jù)庫(kù)編程接口,由微軟公司建議并開發(fā),圖6-2 ODBC應(yīng)用系統(tǒng)模型,5.1

3、.4 JDBC,JDBC是較早的Web開發(fā)平臺(tái),在Web應(yīng)用中,嵌于網(wǎng)頁(yè)(HTML文件)中的Java applets利用JDBC來(lái)訪問(wèn)數(shù)據(jù)庫(kù),圖6-3 采用JDBC技術(shù)實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)訪問(wèn)模型,5.1.5 ADO,ADO(ActiveX Data Objects)是微軟公司W(wǎng)eb服務(wù)器端的內(nèi)置組件,ADO允許程序員在編寫程序時(shí),通過(guò)一個(gè)OLEDB(數(shù)據(jù)庫(kù)對(duì)象鏈接嵌入技術(shù))提供者,如Microsoft SQL Server,Microsoft Access系統(tǒng)等,訪問(wèn)并操縱數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù),圖6-4 采用ADO技術(shù)實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)訪問(wèn)模型,5.2 ODBC接口,5.2.1 ODBC接口概述

4、ODBC是微軟公司建議并開發(fā)的數(shù)據(jù)庫(kù)API標(biāo)準(zhǔn),ODBC為異種數(shù)據(jù)庫(kù)提供了統(tǒng)一的訪問(wèn)接口,它使應(yīng)用程序能用結(jié)構(gòu)化的查詢語(yǔ)言SQL訪問(wèn)數(shù)據(jù)庫(kù),從而對(duì)操作數(shù)據(jù)庫(kù)的應(yīng)用程序屏蔽了不同數(shù)據(jù)庫(kù)管理系統(tǒng)的訪問(wèn)差異,也使數(shù)據(jù)庫(kù)系統(tǒng)的開發(fā)不僅僅局限于某個(gè)DBMS,ODBC主要定義如下5方面的內(nèi)容: ODBC函數(shù)庫(kù),它為應(yīng)用程序提供連接DBMS、執(zhí)行SQL語(yǔ)句、提取訪問(wèn)結(jié)果的程序接口 SQL語(yǔ)法,它遵循X/Open and SQL Access Group Call Level Interface Specification標(biāo)準(zhǔn) 錯(cuò)誤代碼 連接、登錄DBMS 數(shù)據(jù)類型,5.2.2 ODBC的應(yīng)用,一個(gè)ODBC應(yīng)

5、用的建立應(yīng)涵蓋以下主要內(nèi)容: 建立需要操作數(shù)據(jù)庫(kù)的應(yīng)用程序,該程序通過(guò)調(diào)用ODBC函數(shù)提交SQL語(yǔ)句 提供運(yùn)行環(huán)境,該環(huán)境應(yīng)包含數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,它負(fù)責(zé)處理ODBC函數(shù)調(diào)用,向數(shù)據(jù)源提交SQL請(qǐng)求,向應(yīng)用程序返回結(jié)果,必要時(shí)將SQL語(yǔ)法翻譯成符合DBMS語(yǔ)法規(guī)定的格式 具有由用戶數(shù)據(jù)庫(kù)、DBMS等構(gòu)成的可供應(yīng)用程序訪問(wèn)的數(shù)據(jù)源,通過(guò)ODBC訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟如下: 創(chuàng)立并配置數(shù)據(jù)源; 建立一個(gè)與數(shù)據(jù)源的對(duì)話連接; 向數(shù)據(jù)源發(fā)出SQL請(qǐng)求; 定義一個(gè)緩沖區(qū)和數(shù)據(jù)格式用于存儲(chǔ)訪問(wèn)結(jié)果; 提取結(jié)果; 處理各種錯(cuò)誤; 向用戶報(bào)告結(jié)果; 關(guān)閉與數(shù)據(jù)源的連接,5.2.3 創(chuàng)建并配置數(shù)據(jù)源,用戶可通過(guò)如下兩

6、種方式創(chuàng)建或配置數(shù)據(jù)源:ODBC數(shù)據(jù)源管理程序或系統(tǒng)函數(shù)調(diào)用 配置一個(gè)Access數(shù)據(jù)源的過(guò)程如下: 在Windows系統(tǒng)下進(jìn)入控制面板,打開ODBC數(shù)據(jù)源,若是Windows 2000平臺(tái),則打開管理程序下的數(shù)據(jù)源ODBC,屏幕上將出現(xiàn)如圖6-5所示的“ODBC數(shù)據(jù)源管理器”對(duì)話框,圖6-5 “ODBC數(shù)據(jù)源管理器”對(duì)話框,選擇所使用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,如選擇Microsoft Access Driver (*.mdb),單擊“完成”按鈕,出現(xiàn)如圖6-7所示的對(duì)話框,圖6-7 “ODBC Microsoft Access安裝”對(duì)話框,選擇“系統(tǒng)DSN”標(biāo)簽,即選擇“系統(tǒng)數(shù)據(jù)源”。要使系統(tǒng)上的所

7、有應(yīng)用程序都可以使用它,必須選用系統(tǒng)DSN,這是建立Web站點(diǎn)的需要。 單擊“添加”按鈕,進(jìn)入“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,如圖6-6所示,圖6-6 “創(chuàng)建新數(shù)據(jù)源”對(duì)話框,在“數(shù)據(jù)源名”輸入框中鍵入數(shù)據(jù)源名,單擊“選擇”按鈕為該數(shù)據(jù)源指定一個(gè)已創(chuàng)建好的Access數(shù)據(jù)庫(kù)(*.mdb),該數(shù)據(jù)庫(kù)應(yīng)該是在Web應(yīng)用程序中即將訪問(wèn)的數(shù)據(jù)庫(kù)。單擊“確定”按鈕,回到圖6-6“創(chuàng)建新數(shù)據(jù)源”對(duì)話框。單擊“確定”按鈕直到關(guān)閉ODBC數(shù)據(jù)管理器,此時(shí)完成一個(gè)數(shù)據(jù)源的建立過(guò)程。若要修改該數(shù)據(jù)源的配置,可在圖6-5“ODBC數(shù)據(jù)源管理器”對(duì)話框中選定要更改的數(shù)據(jù)源,再單擊“配置”按鈕,5.3 數(shù)據(jù)庫(kù)語(yǔ)言SQL,5.3

8、.1 SQL概述 SQL(Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言)是一個(gè)被廣泛采用、適用于關(guān)系數(shù)據(jù)庫(kù)訪問(wèn)的數(shù)據(jù)庫(kù)語(yǔ)言工業(yè)標(biāo)準(zhǔn)。它包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制等語(yǔ)句標(biāo)準(zhǔn)。 SQL具有以下4部分功能: 數(shù)據(jù)定義用于定義數(shù)據(jù)模式。 數(shù)據(jù)查詢用于從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。 數(shù)據(jù)操縱用于對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行增加、刪除、 修改等操作。 數(shù)據(jù)控制用于控制數(shù)據(jù)庫(kù)用戶的訪問(wèn)權(quán)限,5.3.2 主要的SQL語(yǔ)句,查詢語(yǔ)句SELECT SELECT是SQL的核心語(yǔ)句,它功能強(qiáng)大,和各類SQL子句結(jié)合可完成多種復(fù)雜的查詢操作。其語(yǔ)法格式如下: SELECT ALL | DISTINCT

9、fields_list INTO new_tablename FROM table_names WHERE GROUP BY HAVING ORDER BY,插入數(shù)據(jù)語(yǔ)句INSERT INSERT可添加一個(gè)或多個(gè)記錄到一個(gè)表中。INSERT有兩種語(yǔ)法形式: INSERT INTO target IN externaldatabase (fields_list) DEFAULT VALUES|VALUES(DEFAULT|expression_list) INSERT INTO target IN externaldatabase fields_list SELECT|EXECUTE 刪除數(shù)據(jù)語(yǔ)

10、句DELETE DELETE用于從一個(gè)或多個(gè)表中刪除記錄。其語(yǔ)法格式如下: DELETE FROM table_names WHERE,更新數(shù)據(jù)語(yǔ)句UPDATE UPDATE語(yǔ)句用于更新表中的記錄。其語(yǔ)法格式如下: UPDATE table_name SET Field_1=expression_1,Field_2=expression_2, FROM table1_name|view1_name,table2_name|view2_name, WHERE,5.4 使用ADO訪問(wèn)數(shù)據(jù)庫(kù),5.4.1 概述 ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對(duì)象)技術(shù)是一種良好的

11、Web數(shù)據(jù)庫(kù)訪問(wèn)解決方案 ADO是一個(gè)ASP內(nèi)置的服務(wù)器組件,它是一座連接Web應(yīng)用程序和OLEDB的橋梁 ADO幾乎兼容所有的數(shù)據(jù)庫(kù)系統(tǒng) ADO支持多種程序設(shè)計(jì)語(yǔ)言,5.4.2 ADO的對(duì)象類和對(duì)象模型,ADO技術(shù)是通過(guò)ADO對(duì)象的屬性、方法來(lái)完成相應(yīng)的數(shù)據(jù)庫(kù)訪問(wèn)的。ADO共有以下7種獨(dú)立對(duì)象類 Connection連接對(duì)象,表示與數(shù)據(jù)源的連接關(guān)系 Command命令對(duì)象,用于定義一些特定的命令語(yǔ)法,以執(zhí)行相應(yīng)的動(dòng)作 RecordSet記錄集對(duì)象,用于表示來(lái)自數(shù)據(jù)庫(kù)表或命令執(zhí)行結(jié)果的記錄 Property屬性對(duì)象,用于描述對(duì)象的屬性,每個(gè)ADO對(duì)象都有一組惟一的屬性來(lái)描述或控制對(duì)象的行為,E

12、rror錯(cuò)誤對(duì)象,用于描述Connection對(duì)象在連接數(shù)據(jù)庫(kù)時(shí)發(fā)生的錯(cuò)誤 Field域(字段)對(duì)象,用來(lái)表示RecordSet對(duì)象的字段,一個(gè)記錄行包含一個(gè)或多個(gè)域(字段) Parameter參數(shù)對(duì)象,用來(lái)描述Command對(duì)象的命令參數(shù),是命令所需要的變量部分,圖6-8 ADO對(duì)象模型,5.4.3 ADO樣例,【例】 網(wǎng)絡(luò)導(dǎo)航 Easy 6-1.asp 6-2.asp 6-3.asp 6-4.asp,5.5 ADO Connection對(duì)象,1、建立和關(guān)閉connection對(duì)象實(shí)例: 2、使用connection對(duì)象連接數(shù)據(jù)庫(kù): set db=Server.CreateObject(AD

13、ODB.Connection) db.Open DBQ=“,3、Connection對(duì)象的屬性,Commandtimeout:設(shè)置connection對(duì)象的execute方法的執(zhí)行時(shí)間。默認(rèn)30秒,0值為無(wú)限期等待,直到執(zhí)行結(jié)束。 ConnectionString:指定Connection對(duì)象的數(shù)據(jù)庫(kù)鏈接信息。 打開數(shù)據(jù)庫(kù)除了open 方法,可以如下: ,ConnectionTimeout:指定open方法與數(shù)據(jù)庫(kù)鏈接的的執(zhí)行截至?xí)r間,默認(rèn)30秒。 DefaultDatabase:在多個(gè)數(shù)據(jù)庫(kù)中指定默認(rèn)者。 Mode:設(shè)置連接數(shù)據(jù)庫(kù)的權(quán)限。 0:為定義 1:只讀 2:只寫 3:可讀可寫,3、C

14、onnection對(duì)象的屬性,Version:顯示ADO對(duì)象的版本信息 ,3、Connection對(duì)象的屬性,4、Connection對(duì)象的方法,Open:建立和數(shù)據(jù)庫(kù)的連接 Open方法的參數(shù): Dsn:odbc數(shù)據(jù)源名稱 User:數(shù)據(jù)庫(kù)登陸賬號(hào) Password:數(shù)據(jù)庫(kù)登陸密碼 Driver:數(shù)據(jù)庫(kù)類型 Dbq:數(shù)據(jù)庫(kù)物理路徑,Close:關(guān)閉Connection對(duì)象與數(shù)據(jù)庫(kù)的連接 Execute:執(zhí)行數(shù)據(jù)庫(kù)查詢、SQL語(yǔ)句(查詢、添加、刪除、更新等) 格式: set Recordset對(duì)象=Connection對(duì)象.Execute(SQL字符串) 或 Connection對(duì)象. Exe

15、cute(SQL字符串),4、Connection對(duì)象的方法,BeginTrans :開始事務(wù)的處理 Connection對(duì)象.BeginTrans CommitTrans:提交事務(wù)處理結(jié)果 Connection對(duì)象.CommitTrans (執(zhí)行該方法后,才真正更新數(shù)據(jù)庫(kù)) RollbackTrans:取消事務(wù)處理結(jié)果 Connection對(duì)象.RollbackTrans 以上三種方法結(jié)合起來(lái)將增加數(shù)據(jù)庫(kù)程序的可靠性。,4、Connection對(duì)象的方法,5、數(shù)據(jù)庫(kù)查詢操作,方法一: set rs=server.createobject(ADODB.Recordset) strquery=s

16、elect * from person rs.open strquery,db 方法二: ,5.6 ADO RecordSet對(duì)象,用來(lái)操作數(shù)據(jù)庫(kù)的記錄集(是表記錄的集合,用來(lái)對(duì)單個(gè)記錄操作) 1、創(chuàng)建Recordset對(duì)象(5種方法:RecordSet.asp) 或 先和數(shù)據(jù)庫(kù)相連(顯示建立Connection對(duì)象),2、存取數(shù)據(jù)庫(kù),讀取數(shù)據(jù)記錄: 利用RecordSet對(duì)象讀取記錄既是對(duì)字段的訪問(wèn)。對(duì)于一個(gè)RecordSet對(duì)象,字段名和字段的順序號(hào)均可標(biāo)識(shí)一個(gè)字段。 移動(dòng)記錄指針的方法: rs.方法 Movefirst Movenext Moveprevious Movelast mov

17、e 添加數(shù)據(jù)記錄:,3、Recordset對(duì)象的屬性,返回記錄集,了解當(dāng)前記錄集的特征,得知記錄數(shù),設(shè)置記錄頁(yè)的大小,得到或設(shè)置當(dāng)前指針的絕對(duì)位置。 對(duì)象屬性根據(jù)功能可分為如下幾組: 第一組屬性限定記錄集的內(nèi)容和性質(zhì),在打開記錄前設(shè)置。 Source:設(shè)置數(shù)據(jù)庫(kù)查詢信息 Activeconnection:設(shè)置數(shù)據(jù)庫(kù)連接信息 cursorType:設(shè)置記錄集指針類型 Locktype: 設(shè)置記錄集的鎖定類型 MaxRecors:控制從服務(wù)器上得到的最大記錄數(shù) cursorLocation:設(shè)置記錄集在客戶端還是在服務(wù)器端處理 Filter:設(shè)置要顯示的內(nèi)容,第二組屬性是關(guān)于記錄的,在打開記錄集后

18、讀取。 Recordcount:返回記錄總數(shù) Var=rescordset.recordcount Bof:判斷當(dāng)前記錄指針是否在記錄的開頭 Eof:判斷當(dāng)前記錄指針是否在記錄的尾部,3、Recordset對(duì)象的屬性,第三組屬性完成數(shù)據(jù)分頁(yè)顯示的功能,在打開記錄集后再設(shè)。 Pagesize:設(shè)置數(shù)據(jù)分頁(yè)顯示時(shí)每頁(yè)的記錄數(shù)。 Pagecount:設(shè)置數(shù)據(jù)分頁(yè)顯示時(shí)數(shù)據(jù)頁(yè)的總數(shù)。 Absolutepage:設(shè)置當(dāng)前指針位于哪頁(yè)。 Absoluteposition:設(shè)置當(dāng)前指針?biāo)诘挠涗浶械慕^對(duì)值。,3、Recordset對(duì)象的屬性,4、Recordset對(duì)象的方法,Open Close Reque

19、ry Movefirst Moveprovious Movenext Movelast Move number,start Addnew和Delete,Update 用法: 或 rs.update fields,values Cancelupdate Getrows(rows,start,fields) Resync:客戶端和服務(wù)器端,舉例:,9-1:數(shù)據(jù)庫(kù)基本操作 9-2:利用connection的execute方法維護(hù)數(shù)據(jù)庫(kù) 9-7:利用recordset對(duì)象查詢記錄 9-8:利用recordset對(duì)象分頁(yè)顯示記錄 9-9:利用recordset對(duì)象更新記錄 9-10:利用recordse

20、t對(duì)象更新記錄,5.7 用Command對(duì)象執(zhí)行數(shù)據(jù)庫(kù)操作,5.7.1 Command對(duì)象的常用屬性和方法 執(zhí)行SQL語(yǔ)句可以用打開的Connection對(duì)象,也可以用ADO的Command(命令)對(duì)象達(dá)到同樣的目的。 Command對(duì)象的常用屬性和方法如下: ActiveConnection屬性指定與Command對(duì)象關(guān)聯(lián)的已打開 的連接 對(duì)象。 Name屬性指定Command對(duì)象的名字。 CommandText屬性定義一個(gè)可執(zhí)行的命令串。 CommandType屬性指定命令的類型。 Execute方法執(zhí)行命令,5.7.2 用Command對(duì)象執(zhí)行SQL語(yǔ)句,【例】 用Command對(duì)象的E

21、xecute方法從sales表中檢索出所有記錄。源程序如下: ,5.7.3 用Command對(duì)象調(diào)用存儲(chǔ)過(guò)程,在Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)中使用SQL存儲(chǔ)過(guò)程有下列好處: 執(zhí)行SQL存儲(chǔ)過(guò)程比執(zhí)行SQL命令快得多。當(dāng)一個(gè)SQL語(yǔ)句包含在存儲(chǔ)過(guò)程中時(shí),服務(wù)器不必每次執(zhí)行它時(shí)都要分析和編譯它。 在多個(gè)網(wǎng)頁(yè)中可以調(diào)用同一個(gè)存儲(chǔ)過(guò)程,使站點(diǎn)易于維護(hù)。 一個(gè)存儲(chǔ)過(guò)程可以包含多個(gè)SQL語(yǔ)句,這意味著可用存儲(chǔ)過(guò)程建立復(fù)雜的查詢。 存儲(chǔ)過(guò)程可以接收和返回參數(shù),這是實(shí)現(xiàn)復(fù)雜數(shù)據(jù)庫(kù)訪問(wèn)功能的必要基礎(chǔ)。,存儲(chǔ)過(guò)程的調(diào)用形式 存儲(chǔ)過(guò)程的調(diào)用也是一個(gè)Command對(duì)象的執(zhí)行過(guò)程 【例】 實(shí)現(xiàn)對(duì)存儲(chǔ)過(guò)程HitCount的調(diào)用。源程序如下: ,用Parameter對(duì)象實(shí)現(xiàn)存儲(chǔ)過(guò)程的參數(shù)傳遞 Parameter對(duì)象代表基于參數(shù)化查詢或與存儲(chǔ)過(guò)程的Command對(duì)象相關(guān)聯(lián)的輸入、輸出參數(shù)及存儲(chǔ)過(guò)程的返回值。用C

溫馨提示

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