課件intellect java網(wǎng)絡(luò)編程_第1頁(yè)
課件intellect java網(wǎng)絡(luò)編程_第2頁(yè)
課件intellect java網(wǎng)絡(luò)編程_第3頁(yè)
課件intellect java網(wǎng)絡(luò)編程_第4頁(yè)
課件intellect java網(wǎng)絡(luò)編程_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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

3.1 寵物分類展現(xiàn)模塊數(shù)據(jù)準(zhǔn)備

3.2 JDBC數(shù)據(jù)庫(kù)編程

3.3 POJO+DAO的訪問(wèn)數(shù)據(jù)庫(kù)編程模式

第3章–寵物分類展現(xiàn)模塊數(shù)據(jù)庫(kù)準(zhǔn)備及JDBC

2學(xué)習(xí)目標(biāo)通過(guò)本章的學(xué)習(xí),你可以:掌握搭建MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā)環(huán)境熟悉寵物分類展現(xiàn)模塊的表結(jié)構(gòu)掌握J(rèn)ava數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)掌握POJO+DAO數(shù)據(jù)庫(kù)編程模式掌握通用的數(shù)據(jù)庫(kù)訪問(wèn)基類BaseDAO的編寫(xiě)。完成任務(wù)333.1寵物分類展現(xiàn)模塊數(shù)據(jù)準(zhǔn)備

包括3.1.1安裝MySQL及其界面管理工具Navicat3.1.2在MySQL中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)petstore3.1.3分類表category的創(chuàng)建3.1.4品種表product的創(chuàng)建3.1.5供應(yīng)商表supplier的創(chuàng)建3.1.6系列表item的創(chuàng)建3.1.7庫(kù)存表inventory的創(chuàng)建3.1.8插入測(cè)試數(shù)據(jù)3.1.9為寵物商城系統(tǒng)創(chuàng)建一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)petstore的用戶43.1.1安裝MySQL及其界面管理工具NavicatMySQL下載解壓即可完成安裝,可參照教材附錄3,安裝時(shí)需要注意:為了能很好地支持中文,選擇字符集(charset)為GBK安裝完畢,進(jìn)入MySQL配置界面注意選擇”StandardConfiuguration”標(biāo)準(zhǔn)配置選擇InstallasWindowsService(把MySQL注冊(cè)為Windows中的服務(wù))設(shè)置MySQL中root帳號(hào)的密碼NaviCat被譽(yù)為世界上最強(qiáng)大的MySQL用戶界面開(kāi)發(fā)管理工具,提供類似于SQLServer的用戶管理界面,功能強(qiáng)大,操作方便。

下載直接運(yùn)行即可完成安裝

Navicat操作數(shù)據(jù)庫(kù)前首先要?jiǎng)?chuàng)建連接,然后再進(jìn)行數(shù)據(jù)庫(kù)的操作。Navicat操作數(shù)據(jù)庫(kù)有3種方式:

使用圖形界面;使用SQL語(yǔ)句;使用SQL腳本文件53.1.2在MySQL中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)petstore首先創(chuàng)建連接,在Navicat中可采用三種方式創(chuàng)建:使用圖形界面

在查詢窗口的“查詢編輯器”中錄入創(chuàng)建數(shù)據(jù)庫(kù)的SQL語(yǔ)句來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。

通過(guò)在查詢窗口中加載該腳本文件然后運(yùn)行來(lái)實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù)。

在MySQL中創(chuàng)建數(shù)據(jù)庫(kù)的petstore的SQL語(yǔ)句如下:

CREATEDATABASEIFNOTEXISTSpetstoredefaultcharsetgbk;

defaultcharsetgbk是用來(lái)設(shè)置字符集為gbk,以正確存儲(chǔ)中文信息

MySQL的SQL語(yǔ)句除了必須以分號(hào);結(jié)束外,基本與SQLServer的SQL和標(biāo)準(zhǔn)SQL類似。

63.1.3

分類表category的創(chuàng)建

分類表category的結(jié)構(gòu):字段catid為分類編號(hào),是關(guān)鍵字

name為分類名

descn為對(duì)該分類的描述

創(chuàng)建表category的sql語(yǔ)句如下:

USEPETSTORE;--打開(kāi)數(shù)據(jù)庫(kù)CREATETABLEcategory(

catidvarchar(10)notnull,

namevarchar(80)binarynull,--binary是為了支持中文查找

descnvarchar(255)null, constraintpk_categoryprimarykey(catid)--主鍵)defaultcharset=gbk;--設(shè)置字符集為gbk,以正確存儲(chǔ)中文--標(biāo)識(shí)SQL語(yǔ)句的解釋行

73.1.4品種表product的創(chuàng)建

品種表product的結(jié)構(gòu):字段productid為品種編號(hào),是關(guān)鍵字

字段catid對(duì)應(yīng)分類表的分類編號(hào),是一個(gè)外鍵,可通過(guò)該字段獲得分類名稱

字段name為品種名稱字段descn為品種描述,包括品種對(duì)應(yīng)圖片和描述,在圖2.6中寵物詳細(xì)信息頁(yè)面需要該字段的信息

83.1.4品種表product的創(chuàng)建(續(xù))

在MySQL中創(chuàng)建表product的語(yǔ)句如下:USEPETSTORE;CREATETABLEproduct(productidvarchar(10)notnull,categoryvarchar(10)notnull,namevarchar(80)binarynull,descnvarchar(255)binarynull,constraintpk_productprimarykey(productid),constraintfk_product_1foreignkey(category)referencescategory(catid)--外鍵)defaultcharset=gbk;

93.1.5

供應(yīng)商表supplier的創(chuàng)建

供應(yīng)商表supplier的結(jié)構(gòu)如下,可參照結(jié)構(gòu)圖創(chuàng)建

suppid為供應(yīng)商編號(hào),是主鍵

name為供應(yīng)商姓名

status為供應(yīng)商狀態(tài)

addr1和addr2是供應(yīng)商地址

city為供應(yīng)商所在城市

state為供應(yīng)商所在州(或?。?/p>

zip為郵編

103.1.6

系列表item的創(chuàng)建

系列表系列表item的結(jié)構(gòu)如下,可參照結(jié)構(gòu)圖創(chuàng)建

itemid為系列編號(hào),是關(guān)鍵字

productid對(duì)應(yīng)品種表的品種編號(hào),是外鍵,可通過(guò)該字段獲得品種名稱

listprice是價(jià)格

unitcost是進(jìn)貨價(jià)

supplier是對(duì)應(yīng)供應(yīng)商表的供應(yīng)商編號(hào)suppid,是外鍵

status是狀態(tài)

attr1到attr5是對(duì)該系列的屬性描述

113.1.7

庫(kù)存表inventory的創(chuàng)建

庫(kù)存表inventory的結(jié)構(gòu)如下,可參照結(jié)構(gòu)圖創(chuàng)建

itemid為系列編號(hào),是主鍵

qty為庫(kù)存數(shù)量,圖2.3某品種所有寵物系列列表頁(yè)面將用到該字段信息

123.1.8

插入測(cè)試數(shù)據(jù)

插入測(cè)試數(shù)據(jù)可以用三種方法。對(duì)批量數(shù)據(jù)的插入,最常用的是使用SQL腳本,主要使用Insert語(yǔ)句向表格中插入數(shù)據(jù),如在分類表中插入數(shù)據(jù)的SQL語(yǔ)句如下:usepetstore;INSERTINTOcategoryVALUES('FISH','魚(yú)','<imagesrc="../images/fish_icon.gif"><fontsize="5"color="blue">Fish</font>');INSERTINTOcategoryVALUES('DOGS','狗','<imagesrc="../images/dogs_icon.gif"><fontsize="5"color="blue">Dogs</font>');INSERTINTOcategoryVALUES('REPTILES','爬行類','<imagesrc="../images/reptiles_icon.gif"><fontsize="5"color="blue">Reptiles</font>');INSERTINTOcategoryVALUES('CATS','貓','<imagesrc="../images/cats_icon.gif"><fontsize="5"color="blue">Cats</font>');INSERTINTOcategoryVALUES('BIRDS','鳥(niǎo)類','<imagesrc="../images/birds_icon.gif"><fontsize="5"color="blue">Birds</font>');寵物商城系統(tǒng)的插入數(shù)據(jù)的完整SQL腳本文件見(jiàn)附錄。

133.1.9為寵物商城系統(tǒng)創(chuàng)建一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)petstore的用戶

雖然安裝MySQL時(shí),已經(jīng)有一個(gè)用戶root,但是為了安全起見(jiàn),通常都會(huì)為應(yīng)用程序創(chuàng)建一個(gè)用戶。為Petstore應(yīng)用程序創(chuàng)建一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)petstore的用戶petstoreapp,密碼為123的SQL語(yǔ)句如下:

--創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)用戶,給它授權(quán)并設(shè)置密碼GRANTselect,insert,update,deleteONpetstore.*TOpetstoreapp@localhostidentifiedby'123';

143.2

JDBC數(shù)據(jù)庫(kù)編程

具體就是使用包java.sql和javax.sql包中定義的JDBC類和接口(稱為JDBCAPI)來(lái)編寫(xiě)程序連接和操作數(shù)據(jù)庫(kù),包括:3.2.1安裝MySQL的驅(qū)動(dòng)程序3.2.2JDBC應(yīng)用程序的模板代碼3.2.2編寫(xiě)JDBC應(yīng)用程序修改數(shù)據(jù)庫(kù)3.2.4編寫(xiě)訪問(wèn)數(shù)據(jù)庫(kù)的基類封裝創(chuàng)建數(shù)據(jù)庫(kù)連接的方法

153.2.1安裝MySQL的驅(qū)動(dòng)程序

直接解壓下載下來(lái)的文件,把它添加到項(xiàng)目中(參照附錄4和附錄6)MySQL的驅(qū)動(dòng)程序名.mysql.jdbc.DriverMySQL的連接字符串:jdbc:mysql://<數(shù)據(jù)庫(kù)服務(wù)器IP>/<數(shù)據(jù)庫(kù)名稱>[?useUnicode=true&characterEncoding=GBK]?useUnicode=true&characterEncoding=GBK是為了處理訪問(wèn)數(shù)據(jù)庫(kù)時(shí)出現(xiàn)中文亂碼問(wèn)題而特別帶的參數(shù)163.2.2

JDBC應(yīng)用程序的模板代碼

編寫(xiě)Java程序訪問(wèn)數(shù)據(jù)時(shí)必須經(jīng)歷以下步驟:注冊(cè)驅(qū)動(dòng)建立數(shù)據(jù)庫(kù)連接創(chuàng)建數(shù)據(jù)庫(kù)操作對(duì)象執(zhí)行SQL處理結(jié)果集關(guān)閉JDBC對(duì)象173.2.2

JDBC應(yīng)用程序的模板代碼(續(xù))

以下代碼返回表inventory中itemid為“EST-1”的所有記錄,即編寫(xiě)java程序執(zhí)行SQL語(yǔ)句select*frominventorywhereitemid=‘EST-1‘,代碼如下:packagecom.sziit.petstore.persistent;//引入java.sql中相關(guān)類importjava.sql.Connection;//連接,管理數(shù)據(jù)庫(kù)連接importjava.sql.DriverManager;//驅(qū)動(dòng)管理器,管理數(shù)據(jù)庫(kù)驅(qū)動(dòng)程importjava.sql.ResultSet;//結(jié)果集,管理查詢結(jié)果importjava.sql.Statement;//語(yǔ)句對(duì)象,管理SQL語(yǔ)句的執(zhí)行

18publicclassTestJDBC{ publicstaticvoidmain(Stringargs[]){ Connectionconn=null; Statementstmt=null; ResultSetrs=null;

try{ //步驟(1),注冊(cè)MySQL驅(qū)動(dòng)程序

Class.forName("com.mysql.jdbc.Driver").newInstance();

/*步驟(2),以用戶petstoreapp密碼123創(chuàng)建與petstore的連接*/

conn=DriverManager.getConnection("jdbc:mysql://localhost/petstore? useUnicode=true&characterEncoding=GBK","petstoreapp","123"); //步驟(3),創(chuàng)建語(yǔ)句對(duì)象stmt執(zhí)行查詢

stmt=conn.createStatement(); //步驟(4),使用語(yǔ)句對(duì)象stmt執(zhí)行查詢

rs=stmt.executeQuery("select*frominventorywhereitemid='EST-1'");19 //步驟(5),處理結(jié)果集

while(rs.next()){ System.out.println("ItemID:"+rs.getString("itemid")); System.out.println("QTY(數(shù)量):"+rs.getInt("qty")); } //步驟(6),關(guān)閉JDBC對(duì)象

rs.close(); stmt.close(); conn.close(); }catch(Exceptione){e.printStackTrace();} }}203.2.2

JDBC應(yīng)用程序的模板代碼(續(xù))

在Eclipse中創(chuàng)建包、類的方法見(jiàn)附錄。調(diào)用java.sql包中的類的方法,要使用try語(yǔ)句處理異常,否則無(wú)法編譯通過(guò)。Statement語(yǔ)句對(duì)象與PreparedStatement語(yǔ)句對(duì)象。PreparedStatement提供了一種更為方便的訪問(wèn)數(shù)據(jù)庫(kù)的方法。其執(zhí)行的SQL語(yǔ)句可以包含問(wèn)號(hào)(?),這些問(wèn)號(hào)標(biāo)明變量的位置,通過(guò)提供變量的值,然后執(zhí)行語(yǔ)句。

pstmt=conn.prepareStatement("select*frominventorywhereitemid=?"); pstmt.setString(1,"EST-1");//設(shè)置第一個(gè)問(wèn)號(hào)位置的值

rs=pstmt.executeQuery();

213.2.3編寫(xiě)JDBC應(yīng)用程序修改數(shù)據(jù)庫(kù)

修改數(shù)據(jù)庫(kù)包括刪除、插入和修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

刪除庫(kù)存表inventory中itemID為EST-1的庫(kù)存信息的Java代碼見(jiàn)教材TestJDBC2類,關(guān)鍵代碼:

pstmt=conn.prepareStatement("deletefrominventorywhereitemid=?"); pstmt.setString(1,"EST-1"); introws=pstmt.executeUpdate(); System.out.println(rows+"行受影響");223.2.3編寫(xiě)JDBC應(yīng)用程序修改數(shù)據(jù)庫(kù)(續(xù))

在庫(kù)存表inventory中插入一行數(shù)據(jù),itemID為EST-1,qty為20000,Java代碼見(jiàn)教材TestJDBC3類。關(guān)鍵代碼:

PreparedStatementpstmt=conn.prepareStatement("insertintoinventoryvalues(?,?)");pstmt.setString(1,"EST-1");pstmt.setInt(2,20000);233.2.3編寫(xiě)JDBC應(yīng)用程序修改數(shù)據(jù)庫(kù)(續(xù))

修改庫(kù)存表inventory中itemid為EST-1的qty字段的值為10000,即編寫(xiě)Java程序執(zhí)行SQL語(yǔ)句“updateinventorysetqty=10000whereitemid=‘EST-1’”,關(guān)鍵代碼如下:

PreparedStatementpstmt=conn.prepareStatement("updateinventorysetqty=?whereitemid=?");pstmt.setInt(1,10000);pstmt.setString(2,"EST-1");243.2.4

編寫(xiě)封裝創(chuàng)建數(shù)據(jù)庫(kù)連接的類

每一個(gè)需要數(shù)據(jù)庫(kù)操作的地方都需要重復(fù)“注冊(cè)驅(qū)動(dòng),創(chuàng)建數(shù)據(jù)庫(kù)連接”的步驟。創(chuàng)建類BaseDAO封裝創(chuàng)建數(shù)據(jù)庫(kù)連接的代碼,代碼如下:

packagecom.sziit.petstore.persistent;importjava.sql.Connection;importjava.sql.DriverManager;publicclassBaseDAO{ privateStringdriverName="com.mysql.jdbc.Driver"; privateStringurl="jdbc:mysql://localhost/petstore?useUnicode=true&characterEncoding=GBK"; privateStringuser="petstoreapp"; privateStringpassword="123";253.2.4

編寫(xiě)封裝創(chuàng)建數(shù)據(jù)庫(kù)連接的類(續(xù))

publicConnectiongetConnection()throwsException{Connectionconn=null; Class.forName(driverName).newInstance();conn=DriverManager.getConnection(url,user,password);returnconn; }}則TestJDBC可以使用語(yǔ)句 conn=newBaseDAO().getConnection();

替換以前的: Class.forName("com.mysql.jdbc.Driver").newInstance(); conn=……對(duì)數(shù)據(jù)庫(kù)的用戶名、密碼進(jìn)行修改只需要修改BaseDAO的代碼,TestJDBC的代碼不用做任何修改。263.3

POJO+DAO的訪問(wèn)數(shù)據(jù)庫(kù)編程模式3.2節(jié)可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn),但是會(huì)導(dǎo)致系統(tǒng)代碼中到處充斥著繁瑣的JDBC代碼,如ResultSet,PreparedStatement等POJO+DAO的編程模式:對(duì)于數(shù)據(jù)庫(kù)中的每一張表,設(shè)計(jì)一個(gè)對(duì)應(yīng)的POJO類和一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)DAO類。POJO類的屬性(或成員變量)和表的字段(或列)一一對(duì)應(yīng)(通常是同名)由DAO類負(fù)責(zé)訪問(wèn)數(shù)據(jù)庫(kù),實(shí)現(xiàn)POJO對(duì)象和表數(shù)據(jù)的轉(zhuǎn)換,這樣JDBC代碼就被完全封裝在DAO類中。如:分類表category,對(duì)應(yīng)地將建立一個(gè)POJO類Category和一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的CategoryDAO類273.3.1

編寫(xiě)表結(jié)構(gòu)對(duì)應(yīng)的POJO類以創(chuàng)建表category

對(duì)應(yīng)POJO類Category為例進(jìn)行說(shuō)明:對(duì)應(yīng)表category的3個(gè)字段catid、name和descn為類Category創(chuàng)建3個(gè)私有(private)屬性catid、name和descn為類Category的3個(gè)屬性catid、name和descn分別創(chuàng)建一個(gè)賦值的方法(setter)和一個(gè)取值的方法(getter),即setCatid/getCatid,setName/getName,setDescn/getDescn

具體代碼見(jiàn)教材。注意:在Eclipse中定義了屬性后,getter/setter可以使用“source”—“generategettersandsetters”,選擇需要增加getter和setter的屬性,自動(dòng)生成。

283.3.2

設(shè)計(jì)訪問(wèn)各表的DAO類請(qǐng)同學(xué)們對(duì)比圖3.7,3.9,3.13回答:圖3.23,3.24和3.25方框標(biāo)識(shí)的數(shù)據(jù)都來(lái)自哪個(gè)表?各表對(duì)應(yīng)的DAO類需要提供哪些方法?29303.3.2

設(shè)計(jì)訪問(wèn)各表的DAO類(續(xù))

寵物分類展現(xiàn)各頁(yè)面需要的數(shù)據(jù)可從表category,product,item,inventory中獲取獲得了POJO對(duì)象,則其對(duì)應(yīng)屬性都可通過(guò)getter得到各表對(duì)應(yīng)的DAO類需要提供的方法見(jiàn)教材表3.3。313.3.3

編寫(xiě)訪問(wèn)各表的DAO類通常訪問(wèn)數(shù)據(jù)庫(kù)的DAO類要實(shí)現(xiàn)以下5個(gè)方法,以訪問(wèn)表category的DAO類CategoryDAO為例進(jìn)行說(shuō)明:getConnection:取得一個(gè)數(shù)據(jù)庫(kù)的連接,由于BaseDAO已經(jīng)實(shí)現(xiàn)了該方法,如果繼承BaseDAO就不用重新實(shí)現(xiàn)了。select:該方法實(shí)現(xiàn)對(duì)該表的查詢insert:根據(jù)傳入的Category對(duì)象向表category中插入一條記錄update:根據(jù)傳入的Category對(duì)象更新數(shù)據(jù)庫(kù)記錄delete:根據(jù)傳入的Category對(duì)象刪除表category中對(duì)應(yīng)的這條記錄根據(jù)表3.3,可以知道CategoryDAO還需要實(shí)現(xiàn)getCategory方法

CategoryDAO代碼如下,請(qǐng)同學(xué)們觀察Category對(duì)象封裝數(shù)據(jù)的作用32packagecom.sziit.petstore.persistent;

importcom.sziit.petstore.domain.Category;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.ArrayList;

publicclassCategoryDAOextendsBaseDAO{//繼承BaseDAO不用實(shí)現(xiàn)getConnection方法

publicArrayListselect(Stringsql)throwsException{ ArrayList<Category>result=newArrayList<Category>(); Connectionconn=null; Statementstmt=null; ResultSetrs=null;33 conn=getConnection(); stmt=conn.createStatement(); rs=stmt.executeQuery(sql); while(rs.next()){

//查詢得到的數(shù)據(jù)都保存在Category對(duì)象的屬性中 Categoryobj=newCategory(); obj.setCatid(rs.getString("catid")); obj.setName(rs.getString("name")); obj.setDescn(rs.getString("descn")); result.add(obj); } conn.close(); stmt.close(); rs.close(); returnresult; }34//參數(shù)為Category對(duì)象,具體數(shù)據(jù)需要獲取屬性得到

publicvoidinsert(Categoryobj)throwsException{ Connectionconn=null; PreparedStatementps=null; Stringsql="INSERTINTOcategoryvalues(?,?,?)"; conn=getConnection(); ps=conn.prepareStatement(sql);

//從obj屬性得到需要的數(shù)據(jù) ps.setString(1,obj.getCatid()); ps.setString(2,obj.getName()); ps.setString(3,obj.getDescn());

ps.executeUpdate(); ps.close(); conn.close(); }35//參數(shù)為Category對(duì)象,具體數(shù)據(jù)需要獲取屬性得到publicvoidupdate(Categoryobj)throwsException{ Connectionconn=null; PreparedStatementps=null; Stringsql="UPDATEcategorysetname=?,descn=?wherecatid=?"; conn=getConnection(); ps=conn.prepareStatement(sql);

//從obj屬性得到需要的數(shù)據(jù) ps.setString(1,obj.getName()); ps.setString(2,obj.getDescn()); ps.setString(3,obj.getCatid()); ps.executeUpdate(); ps.close(); conn.close();}36

//參數(shù)為Category對(duì)象,具體數(shù)據(jù)需要獲取屬性得到publicvoiddelete(Categoryobj)throwsException{ Connectionconn=null; PreparedStatementps=null; Stringsql="DELETEfromcategorywherecatid=?"; conn=getConnection(); ps=conn.prepareStatement(sql);

//從obj屬性得到需要的數(shù)據(jù)

ps.setString(1,obj.getCatid()); ps.executeUpdate(); ps.close(); conn.close(); }37//調(diào)用select方法實(shí)現(xiàn)

publicCategorygetCategory(StringcategoryId)throwsException{ Categoryobj=null; ArrayListlist=select("select*fromcategorywherecatid='"+categor

溫馨提示

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