Java程序設(shè)計(jì)項(xiàng)目教程模塊6——Java數(shù)據(jù)庫編程_第1頁
Java程序設(shè)計(jì)項(xiàng)目教程模塊6——Java數(shù)據(jù)庫編程_第2頁
Java程序設(shè)計(jì)項(xiàng)目教程模塊6——Java數(shù)據(jù)庫編程_第3頁
Java程序設(shè)計(jì)項(xiàng)目教程模塊6——Java數(shù)據(jù)庫編程_第4頁
Java程序設(shè)計(jì)項(xiàng)目教程模塊6——Java數(shù)據(jù)庫編程_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、模塊6Java數(shù)據(jù)庫編程6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作項(xiàng)目42 使用JDBC-ODBC橋接實(shí)現(xiàn)與數(shù)據(jù)庫的連接及查詢數(shù)據(jù)表中的數(shù)據(jù) JDBC的基本功能 Java DataBase Connectivity,Java數(shù)據(jù)庫連接由一組用Java編程語言編寫的類和接口組成,是一種可用于執(zhí)行SQL語句的Java API 在java.sql包中定義 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作JDBC API 中定義的主要類數(shù)據(jù)庫驅(qū)動(dòng)程序管理器類DriverManager 在用戶程序和數(shù)據(jù)庫系統(tǒng)之間維護(hù)著與數(shù)據(jù)庫驅(qū)動(dòng)程序之間的連接 實(shí)現(xiàn)驅(qū)動(dòng)程序的裝載 創(chuàng)建與數(shù)據(jù)庫系統(tǒng)連接的Connection類對(duì)象 6.1

2、與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作DriverManager類的常用方法主要功能void deregisterDriver(Driverdriver)從 DriverManager 的列表中刪除一個(gè)驅(qū)動(dòng)程序Connection getConnection(Stringurl)建立到給定數(shù)據(jù)庫 URL 的連接Connection getConnection(Stringurl, Propertiesinfo)建立到給定數(shù)據(jù)庫 URL 的連接Connection getConnection(Stringurl, Stringuser, Stringpassword)建立到給定數(shù)據(jù)庫 URL 的連接Dr

3、iver:每個(gè)驅(qū)動(dòng)程序類必須實(shí)現(xiàn)的接口 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作Driver getDriver (Stringurl)查找能理解給定 URL 的驅(qū)動(dòng)程序Enumeration getDrivers()獲取帶有當(dāng)前調(diào)用者可以訪問的所有當(dāng)前已加載 JDBC 驅(qū)動(dòng)程序的 Enumerationint getLoginTimeout()獲取驅(qū)動(dòng)程序試圖登錄到某一數(shù)據(jù)庫時(shí)可以等待的最長時(shí)間,以秒為單位。void registerDriver (Driverdriver)向 DriverManager 注冊(cè)給定驅(qū)動(dòng)程序void setLoginTimeout (intseconds)設(shè)置驅(qū)動(dòng)

4、程序試圖連接到某一數(shù)據(jù)庫時(shí)將等待的最長時(shí)間,以秒為單位。6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作類Connection用于管理到指定數(shù)據(jù)庫的連接 方法主要功能void clearWarning()清除為此 Connection 對(duì)象報(bào)告的所有警告SQLWarning getWarnings()獲取此 Connection 對(duì)象上的調(diào)用報(bào)告的第一個(gè)警告void close()即釋放此 Connection 對(duì)象的數(shù)據(jù)庫和 JDBC 資源boolean isClosed()查詢此 Connection 對(duì)象是否已經(jīng)被關(guān)閉void commit()使所有上一次提交/回滾后進(jìn)行的更改成為持久更改,并釋放此

5、 Connection 對(duì)象當(dāng)前持有的所有數(shù)據(jù)庫鎖。6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作Statement createStatement (intresultSetType, intresultSetConcurrency)創(chuàng)建一個(gè) Statement 對(duì)象,該對(duì)象將生成具有給定類型和并發(fā)性的 ResultSet 對(duì)象Statement用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結(jié)果的對(duì)象 resultSetType包括:TYPE_FORWARD_ONLY 1003 指針只能向前移動(dòng)TYPE_SCROLL_INSENSITIVE 1004指針可滾動(dòng)但通常不受其他的更改影響TYPE_SCROLL_

6、SENSITIVE 1005指針可滾動(dòng)并且通常受其他的更改影響resultSetConcurrency包括CONCUR_READ_ONLY 1007 不可以更新CONCUR_UPDATABLE 1008 可以更新 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作Statement createStatement()創(chuàng)建一個(gè) Statement 對(duì)象來將 SQL 語句發(fā)送到數(shù)據(jù)庫String getCatalog()獲取此 Connection 對(duì)象的當(dāng)前目錄名稱void setCatalog (Stringcatalog)設(shè)置給定目錄名稱DatabaseMetaData getMetaData()獲取一個(gè)

7、 DatabaseMetaData 對(duì)象,該對(duì)象包含關(guān)于此 Connection 對(duì)象所連接的數(shù)據(jù)庫的元數(shù)據(jù)接口 DatabaseMetaData(數(shù)據(jù)庫元數(shù)據(jù))關(guān)于數(shù)據(jù)庫的整體綜合信息 元數(shù)據(jù):描述數(shù)據(jù)及其環(huán)境的數(shù)據(jù)能提供基于用戶的信息能支持系統(tǒng)對(duì)數(shù)據(jù)的管理和維護(hù) 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作boolean isReadOnly()查詢此 Connection 對(duì)象是否處于只讀模式void setReadOnly (booleanreadOnly)將此連接設(shè)置為只讀模式CallableStatement prepareCall(Stringsql)創(chuàng)建一個(gè) CallableState

8、ment 對(duì)象來調(diào)用數(shù)據(jù)庫存儲(chǔ)過程CallableStatement:用于執(zhí)行 SQL 存儲(chǔ)過程的接口PreparedStatement:表示預(yù)編譯的 SQL 語句的對(duì)象 PreparedStatement prepareStatement(Stringsql)創(chuàng)建一個(gè) PreparedStatement 對(duì)象來將參數(shù)化的 SQL 語句發(fā)送到數(shù)據(jù)庫void rollback()取消在當(dāng)前事務(wù)中進(jìn)行的所有更改,并釋放此 Connection 對(duì)象當(dāng)前持有的所有數(shù)據(jù)庫鎖6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作JDBC訪問數(shù)據(jù)庫的兩種方式利用數(shù)據(jù)庫產(chǎn)品的面向ODBC驅(qū)動(dòng)程序,在JDBC和ODBC之間建立

9、JDBC- ODBC橋,在Java程序中基于JDBC- ODBC橋的方式訪問數(shù)據(jù)庫基于特定數(shù)據(jù)庫產(chǎn)品的JDBC驅(qū)動(dòng)程序,在Java應(yīng)用程序中利用JDBC數(shù)據(jù)驅(qū)動(dòng)程序直接與數(shù)據(jù)庫連接 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作建立數(shù)據(jù)庫連接 首先必須通過java.lang.Class類的forName()動(dòng)態(tài)加載驅(qū)動(dòng)程序類,加載驅(qū)動(dòng)器的語句為: Class.forName(sun.jdbc.odbc.JdbcOdbcDrvier);再向DriverManager注冊(cè)JDBC驅(qū)動(dòng)程序,用DriverManager類中的getConnection()方法建立與數(shù)據(jù)庫的連接。 Connection con=

10、DriverManager.getConnection(url, 數(shù)據(jù)庫的用戶名,密碼); url是由三部分組成,是提供識(shí)別數(shù)據(jù)庫方式的串:: 例:如果數(shù)據(jù)源是MyDataSource,則url可以寫成: jdbc:odbc:MyDataSource6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作創(chuàng)建數(shù)據(jù)源的步驟 (Windows XP )打開控制面版性能和維護(hù)管理工具數(shù)據(jù)源(ODBC)在“用戶DSN”中單擊添加按鈕 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作創(chuàng)建數(shù)據(jù)源的步驟 (Windows XP )選擇SQL Server,點(diǎn)擊完成按鈕 在名稱欄內(nèi)寫上數(shù)據(jù)源的名字,如MyDataSource 服務(wù)如果是用本

11、機(jī)的話就直接寫上“.”號(hào)就可以了,如果是用別的服務(wù)器,請(qǐng)單擊下拉按鈕選擇。然后單擊下一步 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作創(chuàng)建數(shù)據(jù)源的步驟 (Windows XP )可以選擇使用用戶輸入登錄的ID和密碼的SQL Server驗(yàn)證,然后設(shè)置登錄SQL的用戶名和密碼,如用戶名為sa,密碼為空,然后點(diǎn)下一步 更改默認(rèn)的數(shù)據(jù)庫(你處理哪個(gè)數(shù)據(jù)庫中的數(shù)據(jù),就把對(duì)應(yīng)的數(shù)據(jù)庫更改為默認(rèn)數(shù)據(jù)庫,如pubs),然后點(diǎn)下一步 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作創(chuàng)建數(shù)據(jù)源的步驟 (Windows XP )直接點(diǎn)完成 點(diǎn)擊測試數(shù)據(jù)源,測試是否連接成功。至此數(shù)據(jù)源建立完畢。點(diǎn)擊確定按鈕退出此對(duì)話框 6.1與數(shù)據(jù)庫

12、的連接及數(shù)據(jù)的基本操作創(chuàng)建和執(zhí)行JDBC語句Statement對(duì)象可將簡單的查詢發(fā)送到數(shù)據(jù)庫。創(chuàng)建一個(gè)Statement對(duì)象將想要執(zhí)行的SQL語句傳遞給適當(dāng)?shù)膱?zhí)行方法執(zhí)行該Statement對(duì)象。如:Statement stat = con.createStatement();對(duì)于SELECT語句,使用的方法是executeQuery()對(duì)于創(chuàng)建、插入或更新表的語句,使用的方法是executeUpdate()。 如:stat.executeUpdate(sql); /sql字符串是一條SQL語句 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作處理結(jié)果:JDBC將結(jié)果集返回給ResultSet對(duì)象Resu

13、ltSet rs = stat.executeQuery(sql); /sql字符串是一條SQL語句 ResultSet結(jié)果集對(duì)象所包含的常用方法如下:next():對(duì)象rs包含了結(jié)果集中顯示的表,將光標(biāo)移到下一行。光標(biāo)初始定位于ResultSet對(duì)象第一行的上面第一次調(diào)用next()將光標(biāo)移到第一行,使它成為當(dāng)前行。接下來調(diào)用next()將使光標(biāo)從上至下每次移動(dòng)一行。getString()常用于檢索CHAR和VARCHAR SQL類型的數(shù)據(jù)也能檢索其他基本SQL類型的數(shù)據(jù)例:如果用它檢索numeric類型的數(shù)據(jù),getString()將把numeric值轉(zhuǎn)換成Java的String對(duì)象,這樣

14、一來,在數(shù)據(jù)要作為數(shù)字前就必須轉(zhuǎn)換回numeric類型 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作getXXX():適當(dāng)類型的getXXX方法可用于檢索列中的數(shù)值,這里的XXX指列的數(shù)據(jù)類型檢索VARCHAR SQL類型數(shù)值的方法是getString()檢索float類型數(shù)值的方法是getFloat()while (rs.next() /每次調(diào)用next(),下一行就成為當(dāng)前行,直到rs中再也沒有可向前移動(dòng)的行為止 String s = rs.getString(strColumnName1 ); float n = rs.getFloat(strColumnName2); / strColumnN

15、ame1、 strColumnName2都是sql字符串中的列名 System.out.println(s + + n);JDBC使用兩種方法標(biāo)識(shí)getXXX方法檢索數(shù)值的列指定列名指定列索引(列的序號(hào)),i表示第i列 如:String s = rs.getString(1); float n = rs.getFloat(2);6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作與數(shù)據(jù)庫連接及數(shù)據(jù)基本操作的步驟創(chuàng)建數(shù)據(jù)源建立數(shù)據(jù)庫連接 Class.forName(sun.jdbc.odbc.JdbcOdbcDrvier); Connection con = DriverManager.getConnectio

16、n (url,“數(shù)據(jù)庫用戶名”, “密碼); 創(chuàng)建和執(zhí)行JDBC語句:Statement stat = con.createStatement(); 執(zhí)行JDBC語句,得到處理結(jié)果ResultSet rsstat.executeQuery (sql); while (rs.next() 變量名rs.get(列名或列索引);關(guān)閉連接: con.close6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作【應(yīng)用擴(kuò)展】使用預(yù)備語句Statement對(duì)象是可以將簡單的查詢發(fā)送到數(shù)據(jù)庫發(fā)送帶參數(shù)的查詢語句到數(shù)據(jù)庫,可以使用PreparedStatement對(duì)象包含一條預(yù)編譯過的SQL語句DBMS不必編譯就可直接運(yùn)行P

17、reparedStatement的SQL語句代替Statement對(duì)象一般會(huì)縮短執(zhí)行時(shí)間PreparedStatement對(duì)象可用于不帶參數(shù)的SQL語句,但在多數(shù)場合是用于帶參數(shù)的SQL語句。6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作【應(yīng)用擴(kuò)展】使用預(yù)備語句其用法如下:String strSql=UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?;PreparedStatement stat = con.prepareStatement(strSql);stat.setInt(1, 75);/給上面的SQL語句的第一個(gè)問號(hào)賦值stat.setStri

18、ng(2, Colombian);/給上面的SQL語句的第二個(gè)問號(hào)賦值stat.executeUpdate();/相當(dāng)于執(zhí)行UPDATE COFFEES SET SALES = 75 WHERE COF_NAME LIKE Colombian可用該對(duì)象制作成模板實(shí)現(xiàn)一次構(gòu)造多條帶參數(shù)的SQL語句,簡化編碼。6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作【應(yīng)用擴(kuò)展】executeUpdate方法的返回值executeQuery返回一個(gè)ResultSet對(duì)象executeUpdate返回的是一個(gè)整數(shù)值,指出了表中已更新的行數(shù)。如果executeUpdate的返回值為0表明 執(zhí)行的語句是一不影響任何行的更新語

19、句 執(zhí)行的是一無返回內(nèi)容的 SQL 語句,比如DLL語句SQL與Java的數(shù)據(jù)類型SQL數(shù)據(jù)類型與Java的數(shù)據(jù)類型不一致在使用Java類型的應(yīng)用程序與使用SQL類型的數(shù)據(jù)庫之間,需要某種讀寫類型轉(zhuǎn)換機(jī)制ResultSet類的“get”系列方法Statement及其子類的“set”系列方法都有可能要用到數(shù)據(jù)轉(zhuǎn)換 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作項(xiàng)目43 使用純Java JDBC 實(shí)現(xiàn)與數(shù)據(jù)庫的連接及更新JDBC-ODBC橋?qū)DBC數(shù)據(jù)轉(zhuǎn)換為ODBC數(shù)據(jù)源,然后用ODBC與數(shù)據(jù)連接,速度比較慢。純Java JDBC驅(qū)動(dòng)程序用純Java 語言編寫?yīng)毩⒌腏DBC驅(qū)動(dòng)程序直接與數(shù)據(jù)連接與數(shù)據(jù)庫進(jìn)

20、行通信的整個(gè)過程均由Java語言實(shí)現(xiàn),而不通過橋接或中間件來存取數(shù)據(jù)庫缺點(diǎn):需要下載相應(yīng)的類包不同數(shù)據(jù)庫的連接代碼可能不同 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作項(xiàng)目43 使用純Java JDBC 實(shí)現(xiàn)與數(shù)據(jù)庫的連接及更新JDBC-ODBC橋?qū)DBC數(shù)據(jù)轉(zhuǎn)換為ODBC數(shù)據(jù)源,然后用ODBC與數(shù)據(jù)連接,速度比較慢。純Java JDBC驅(qū)動(dòng)程序用純Java 語言編寫?yīng)毩⒌腏DBC驅(qū)動(dòng)程序直接與數(shù)據(jù)連接與數(shù)據(jù)庫進(jìn)行通信的整個(gè)過程均由Java語言實(shí)現(xiàn),而不通過橋接或中間件來存取數(shù)據(jù)庫缺點(diǎn):需要下載相應(yīng)的類包不同數(shù)據(jù)庫的連接代碼可能不同 使用純Java JDBC驅(qū)動(dòng)程序連接數(shù)據(jù)庫 裝載驅(qū)動(dòng)程序在程序中,

21、利用Class.forName()方法加載指定的驅(qū)動(dòng)程序Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); 注意:連接不同的數(shù)據(jù)庫時(shí),加載的驅(qū)動(dòng)程序有所不同。建立與數(shù)據(jù)庫的連接首先創(chuàng)建指定數(shù)據(jù)庫的URLjdbc:subProtlcol:subName:/hostname:port;DatabaseName=XXXJDBC表示當(dāng)前通過Java數(shù)據(jù)庫連接進(jìn)行數(shù)據(jù)庫訪問subProtocal表示某種驅(qū)動(dòng)程序支持的數(shù)據(jù)庫連接機(jī)制subName表示在當(dāng)前連接機(jī)制下的具體名稱hostname表示主機(jī)名。port表示相應(yīng)的連接端口Data

22、baseName是要連接的數(shù)據(jù)庫的名稱。例如:String url=jdbc: sqlserver:/localhost:1433;DatabaseName=pubs; /pubs為數(shù)據(jù)庫名String user=“sa”; /用戶名 String password=; /密碼Connection conn= DriverManager.getConnection(url,user,password);6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作創(chuàng)建存儲(chǔ)過程CallableStatement 對(duì)象為所有的 DBMS 提供了一種以標(biāo)準(zhǔn)形式調(diào)用已儲(chǔ)存過程的方法創(chuàng)建一個(gè)存儲(chǔ)過程: create proced

23、ure publishers_titles as select pub_name,title from publishers,titles where publishers.pub_id=titles.pub_id order by title將SQL語句放到一個(gè)字符串中,然后賦給變量createProcedure以備后用:String createProcedure =” create procedure publishers_titles as select pub_name,title from publishers,titles where publishers.pub_id=titl

24、es.pub_id order by title”使用Connection對(duì)象con來創(chuàng)建Statement對(duì)象,用于把創(chuàng)建存儲(chǔ)過程的SQL語句發(fā)送給數(shù)據(jù)庫:Statement stmt = con.createStatement(); stmt.executeUpdate(createProcedure);存儲(chǔ)過程publishers_titles將作為一個(gè)可調(diào)用的數(shù)據(jù)庫對(duì)象在數(shù)據(jù)庫中編譯并存儲(chǔ),調(diào)用時(shí)就像調(diào)用其他方法一樣 6.1與數(shù)據(jù)庫的連接及數(shù)據(jù)的基本操作從JDBC調(diào)用存儲(chǔ)過程創(chuàng)建一個(gè)CallableStatement對(duì)象利用一個(gè)打開的Connection對(duì)象即可完成創(chuàng)建Callable

25、Statement對(duì)象包含了存儲(chǔ)過程的一個(gè)調(diào)用;但它不包含存儲(chǔ)過程本身 如:CallableStatement cs = con.prepareCall(call publishers_titles );ResultSet rs = cs.executeQuery() 注意用于執(zhí)行cs的方法是executeQuery,因?yàn)閏s調(diào)用的存儲(chǔ)過程包含一個(gè)查詢,執(zhí)行后產(chǎn)生一個(gè)結(jié)果集如果存儲(chǔ)過程包含一條更新或一條DLL語句:executeUpdate方法如果存儲(chǔ)過程包含多條SQL語句,產(chǎn)生了多個(gè)結(jié)果集:execute方法6.2 結(jié)果集元數(shù)據(jù) 項(xiàng)目44 獲取數(shù)據(jù)表的基本信息結(jié)果集元數(shù)據(jù)(ResultSet

26、MetaData)包含結(jié)果集的相關(guān)信息如字段名和字段類型。根據(jù)結(jié)果集的元數(shù)據(jù),可以得到一個(gè)查詢結(jié)果集關(guān)于查詢表中列的個(gè)數(shù)、各個(gè)列名、類型以及各個(gè)列的寬度等ResultSetMetaData的對(duì)象可以由ResultSet對(duì)象的getMetaData()方法得到。在使用結(jié)果集前,需要知道記錄的行列數(shù)此類信息存儲(chǔ)在結(jié)果集元數(shù)據(jù)中使用結(jié)果集中的成員方法“getMetaData()”,便可得到結(jié)果集元數(shù)據(jù)。ResultSetMetaData rsmd = results.getMetaData(); numCols = rsmd.getColumnCount();/從結(jié)果集元數(shù)據(jù)中取得列數(shù) 6.2 結(jié)果

27、集元數(shù)據(jù)項(xiàng)目44 獲取數(shù)據(jù)表的基本信息ResultSetMetaData主要方法主要功能getColumnCount()返回目前ResultSet對(duì)象的列數(shù)getColumnDisplaySize(int column)返回column指定的列的最大寬度getColumnLabel(int column)返回column指定列的標(biāo)簽getColumnName(int column)返回column指定列的列名getColumnType(int)返回指定號(hào)數(shù)的字段類型6.2 結(jié)果集元數(shù)據(jù)【應(yīng)用擴(kuò)展】 數(shù)據(jù)庫元數(shù)據(jù)(DatabaseMetaData)包含數(shù)據(jù)庫的有關(guān)信息如表名、表索引、數(shù)據(jù)庫產(chǎn)品名和版本號(hào)、數(shù)據(jù)庫支持的操作等等。DatabaseMetaData對(duì)象的創(chuàng)建如下: DatabaseMetaData dma = con.getMetaData(); /con是Connection的一個(gè)對(duì)象 6.2 結(jié)果集元數(shù)據(jù) 【應(yīng)用擴(kuò)展】 DatabaseMetaData類主要方法主要功能ResultSet getCatalogs()獲取可在此數(shù)據(jù)庫中使用的類別名稱。ResultSet getColumns(catalog, schema,

溫馨提示

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