JAVA程序設(shè)計技能教程第11章.ppt_第1頁
JAVA程序設(shè)計技能教程第11章.ppt_第2頁
JAVA程序設(shè)計技能教程第11章.ppt_第3頁
JAVA程序設(shè)計技能教程第11章.ppt_第4頁
JAVA程序設(shè)計技能教程第11章.ppt_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計技能教程,主編 彭德林 李德有 中國水利水電出版社 ,第11章 數(shù)據(jù)庫編程,任務(wù)一 :使用JDBC連接數(shù)據(jù)庫,任務(wù)三 :數(shù)據(jù)庫編程,任務(wù)二 :建立數(shù)據(jù)源,任務(wù)四 :實訓(xùn)十一 數(shù)據(jù)庫編程實訓(xùn),11.1 任務(wù)一 使用JDBC連接數(shù)據(jù)庫,11.1.1 JDBC簡介 1JDBC概述 JDBC(Java Database Connectivity,即Java數(shù)據(jù)庫連接),是一種在Java應(yīng)用程序中訪問數(shù)據(jù)庫的綜合技術(shù),可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成,主要提供三方面的功能:建立同數(shù)據(jù)庫的連接,然后向數(shù)據(jù)庫發(fā)送SQL語句,處理從數(shù)據(jù)庫中返回的SQL執(zhí)行結(jié)果。,圖 4-1 簡單的條件語句,JDBC在Web和Internet應(yīng)用程序中的作用和ODBC在 Windows系列平臺應(yīng)用程序中的作用類似,但ODBC只針對Windows平臺,而且ODBC需要在客戶機上安裝和注冊,因而維護成本相對較大。而JDBC是由Java語言編寫的,使得JDBC代碼可在所有Java平臺上運行,這樣使得程序的可移植性和安全性顯著提高了。 應(yīng)用程序通過相應(yīng)接口(API)訪問數(shù)據(jù)庫,JDBC是Java應(yīng)用程序訪問數(shù)據(jù)庫的通用接口,稱為JDBC API。,使用JDBC來完成對數(shù)據(jù)庫的訪問包括以下四個主要組件: Java的應(yīng)用程序、JDBC驅(qū)動器管理器、驅(qū)動器和數(shù)據(jù)源。 圖 11-1 JDBC框架圖,2JDBC的結(jié)構(gòu) (1)、面向應(yīng)用程序設(shè)計的JDBC API:它主要是由一系列的接口組成,通過調(diào)用此API從而實現(xiàn)連接數(shù)據(jù)庫、執(zhí)行SQL語句并返回結(jié)果集等編程數(shù)據(jù)庫的能力,如: java.sql.DriveManager:該接口主要定義了用來處理裝載驅(qū)動程序并且為創(chuàng)建新的數(shù)據(jù)庫連接提供支持。 java.sql.Connection:該接口主要定義了實現(xiàn)對某一種指定數(shù)據(jù)庫連接的功能。 java.sql.Statement:該接口主要定義了在一個給定的連接中作為SQL語句執(zhí)行聲明的容器以實現(xiàn)對數(shù)據(jù)庫的操作。它主要包含有如下的兩種子類型。 java.sql.PreparedStatement:該接口主要定義了用于執(zhí)行帶或不帶 IN 參數(shù)的預(yù)編譯 SQL 語句。,java.sql.CallableStatement:該接口主要定義了用于執(zhí)行數(shù)據(jù)庫的存儲過程的雕用。 java.sql.ResultSet:該接口主要定義了用于執(zhí)行對數(shù)據(jù)庫的操作所返回的結(jié)果集。 (2)、面向數(shù)據(jù)庫廠商的JDBC Drive API : 數(shù)據(jù)庫廠商必須提供相應(yīng)的驅(qū)動程序并實現(xiàn)JDBC API所要求的基本接口(每個數(shù)據(jù)庫系統(tǒng)廠商必須提供對DriveManager、Connection、Statement、ResultSet等接口的具體實現(xiàn)),從而最終保證Java程序員通過JDBC實現(xiàn)對不同的數(shù)據(jù)庫操作。,11.1.2 JDBC驅(qū)動 目前比較常見的JDBC驅(qū)動程序可分為以下四個種類型: 1JDBC-ODBC橋接 通過JDBC-ODBC橋接可以很容易地使用JDBC訪問ODBC數(shù)據(jù)源。JDBC-ODBC 橋接方式是利用微軟的開放數(shù)據(jù)庫互連接口(ODBC API)同數(shù)據(jù)庫服務(wù)器通訊的,它要求客戶端上都要安裝ODBC驅(qū)動,同時還要求配置ODBC數(shù)據(jù)源。這種連接方式雖然簡單但效率低。這種類型的驅(qū)動程序最適合于企業(yè)網(wǎng)絡(luò),或者是用Java編寫的三層結(jié)構(gòu)的應(yīng)用程序服務(wù)器代碼。 2部分Java的本地API驅(qū)動程序 這種類型的驅(qū)動程序把客戶機API上的JDBC調(diào)用轉(zhuǎn)換為Oracle、Sybase、Informix、DB2或其它DBMS的調(diào)用。注意,象橋驅(qū)動程序一樣,這種類型的驅(qū)動程序要求將某些二進制代碼加載到每臺客戶機上。它比第一種驅(qū)動要快。,3JDBC網(wǎng)絡(luò)純Java驅(qū)動程序 這種驅(qū)動程序?qū)DBC轉(zhuǎn)換為與DBMS無關(guān)的網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個服務(wù)器轉(zhuǎn)換為一種DBMS協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募僇ava客戶機連接到多種不同的數(shù)據(jù)庫上。所用的具體協(xié)議取決于提供者。通常,這是最為靈活的JDBC驅(qū)動程序。此種驅(qū)動很適合Internet應(yīng) 4本地協(xié)議純Java驅(qū)動程序,11.2 任務(wù)二 建立數(shù)據(jù)源 11.2.1 建立Access數(shù)據(jù)庫 1ACCESS數(shù)據(jù)庫的設(shè)計 在設(shè)計數(shù)據(jù)庫時要確定設(shè)計數(shù)據(jù)庫的目的、庫中需要的表及表中需要的字段。每張表只包含關(guān)于一個主題的信息,在設(shè)計表時,應(yīng)注意: 明確有唯一值的字段 確定表間的關(guān)系 優(yōu)化設(shè)計 添加數(shù)據(jù)和新建其他數(shù)據(jù)庫對象 根據(jù)用戶需求,表的結(jié)構(gòu)設(shè)計完成后,就可以繼續(xù)創(chuàng)建所需的任何查詢、窗體、報表、宏和模塊等。,2表的創(chuàng)建及操作 Access提供了四種創(chuàng)建空表的方法: (1)、使用數(shù)據(jù)庫向?qū)?,可以在一個操作中創(chuàng)建整個數(shù)據(jù)庫所需的全部表、窗體及報表。數(shù)據(jù)庫向?qū)в糜谛陆〝?shù)據(jù)庫,但不能用來將新表、窗體或報表添加到已有的數(shù)據(jù)庫中。 (2)、使用表向?qū)磉x擇表的字段,這些字段可以從各種各樣預(yù)先定義好的表中選擇。 (3)、將數(shù)據(jù)直接輸入到空白的數(shù)據(jù)表中。當保存新的數(shù)據(jù)表時,Access將分析數(shù)據(jù)并且自動為每一字段指定適當?shù)臄?shù)據(jù)類型及格式。 (4)、使用“設(shè)計”視圖從無到有指定表的全部細節(jié)。 創(chuàng)建了數(shù)據(jù)表后,可以針對表進行添加記錄 、定位記錄 、編輯數(shù)據(jù) 、插入記錄、選擇記錄、刪除記錄和記錄的復(fù)制等操作了。,11.2.2 建立數(shù)據(jù)源 1在window xp系統(tǒng)中,單擊【開始】-【設(shè)置】-【控制面板】-【管理工具】 。 2在彈出的窗口中雙擊打開【數(shù)據(jù)源ODBC】應(yīng)用程序圖標,再在打開的【ODBC數(shù)據(jù)源管理器】窗口中選擇【系統(tǒng)DSN】標簽。 3單擊【添加】按鈕,在彈出的對話框中選擇【Microsoft Access Driver (*.mdb) 】標簽。 4點擊【完成】后,在彈出的Access數(shù)據(jù)源設(shè)置對話框中,輸入【數(shù)據(jù)源名】為”mylibDB”,然后單擊【選擇】按鈕,找到剛才建立的數(shù)據(jù)庫(即E盤jpp文件夾下的library.mdb文件),選中它并確定即可。(如果想設(shè)置訪問密碼,可以單擊【高級】按鈕,會彈出“高級設(shè)置選項”對話框)。 5單擊確定后,ODBC數(shù)據(jù)源的設(shè)置就完成了。,11.3 任務(wù)三 數(shù)據(jù)庫編程,11.3.1 數(shù)據(jù)庫編程過程 1JDBC數(shù)據(jù)庫編程用到的相關(guān)類和接口 (1)、DriverManager類: 負責管理JDBC驅(qū)動程序。使用JDBC驅(qū)動程序之前,必須先將驅(qū)動程序加載并向DriverManager注冊后才可以使用,同時提供方法來建立與數(shù)據(jù)庫的連接。 方法如下: Class.forName(String driver):加載注冊驅(qū)動程序 。 Static Connection getConnection(String url,String user,String password) throws SQLException:取得對數(shù)據(jù)庫的連接 。 Static Driver getDriver(String url) throws SQLExcetion:在已經(jīng)向DriverManager注冊的驅(qū)動程序中尋找一個能夠打開url所指定的數(shù)據(jù)庫的驅(qū)動程序。,(2)、Connection類 Connection對象是通過DriverManager.getConnection()方法獲得的,主要負責維護JSP/JAVA數(shù)據(jù)庫程序和數(shù)據(jù)庫之間的聯(lián)機,建立Java程序與數(shù)據(jù)庫之間的連接,并生成三個非常有用的類對象:Statement類對象、DatabaseMetaData類對象和PreparedStatement類對象。 建立Statement類對象的方法如下: Statement createStatement() throws SQLException; Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException; 建立DatabaseMetaData類對象的方法如下 : DatabaseMetaData getMetaData() throws SQLException; 建立PreparedStatement類對象的方法如下: PreparedStatement prepareStatement(String sql) throws SQLException;,(3)、Statement類 Statement類用于將SQL語句發(fā)送到已連接的數(shù)據(jù)庫中,通過Statement類所提供的方法(見表11-4),可以利用標準的SQL命令,對數(shù)據(jù)庫直接新增、刪除或修改等操作。 (4)、PreparedStatement類 PreparedStatement類和Statement類的不同之處在于PreparedStatement類對象會將傳入的SQL命令事先編好等待使用,當有單一的SQL指令比多次執(zhí)行時,用PreparedStatement類會比Statement類有效率。,(5)、DatabaseMetaData類 DatabaseMetaData類保存了數(shù)據(jù)庫的所有特性,并且提供許多方法(見表11-6)來取得這些信息。 (6)、ResultSet類 ResultSet類是Statement類招待SQL語句后生成的記錄集??梢哉J為它是一個二維的表格,主要負責存儲查詢數(shù)據(jù)庫的結(jié)果。并提供一系列的方法(見表11-7)對數(shù)據(jù)庫進行新增、刪除和修改操作。也負責維護一個記錄指針(Cursor),記錄指針指向數(shù)據(jù)表中的某個記錄,通過適當?shù)囊苿佑涗浿羔?,可以隨心所欲的存取數(shù)據(jù)庫,加強程序的效率。 (7)、ResultSetMetaData類 ResultSetMetaData類對象保存了所有ResultSet類對象中關(guān)于字段的信息,提供許多方法(見表11-8)來取得這些信息:,2. 數(shù)據(jù)庫訪問過程 (1)、 首先裝載驅(qū)動程序 裝載驅(qū)動程序DriverManager類使用Class類的forName方法。語法如下: Class.forName(“)或Class.forName(“).newInstance() 根據(jù)需要裝載的驅(qū)動的不同,具體方法也不同。這里是加載ODBCJDBC橋接的例子: String jdbcDriver=“sun.jdbc.odbc.JdbcOdbcDriver“ try Class.forName(jdbcDriver); catch(java.lang.ClassNotFoundException e) System.out.println(“類未找到錯誤!“+e); 注意: 裝載驅(qū)動程序要處理異常。,(2)、 建立連接 指定裝載的數(shù)據(jù)庫驅(qū)動程序后,可用DriverManager類來進行數(shù)據(jù)源或數(shù)據(jù)庫的連接。DriverManager類是JDBC基礎(chǔ),用來管理JDBC驅(qū)動程序。該類有靜態(tài)的getConnection()方法,用于驗證JDBC數(shù)據(jù)源,并返回接口Connection對象。 使用JDBCODBC橋接器的例子: Connection con = DriverManager.getConnection (“jdbc:odbc:mylibDB“); 其中的“mylibDB“為建立的數(shù)據(jù)源的名稱。,根據(jù)需要裝載的驅(qū)動的不同,具體的連接方法也不同。 A、這里是加載mySQL JDBC驅(qū)動程序 Class.forName(“org.gjt.mm.mysql.Driver “).newInstance(); String url=“jdbc:mysql:/localhost/myDB? user=mymouse&password=mouse2008&useUnicode=true&characterEncoding=8859_1“ Connection con=DriverManager.getConnection(url),B、裝載Oracle JDBC OCI驅(qū)動程序(用thin模式) Class.forName(“oracle.jdbc.driver.OracleDriver “); String url=“jdbc:oracle:thin:localhost:1521:orcl“; String user=“bigmouse“; String password=“mouse“; Connection con=DriverManager.getConnection(url,user,password); 注意:也可以通過con.setCatalog(“MyDatabase“)來加載數(shù)據(jù)庫。,C、裝載DB2驅(qū)動程序 Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver “) String url=“jdbc:db2:/localhost:5000/mydata“; / mydata為你的數(shù)據(jù)庫名 String user=“admin“; String password=“; Connection con= DriverManager.getConnection(url,user,password);,D、裝載MicroSoft SQLServer驅(qū)動程序 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“); String url=“jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=bookstore“; / bookstore為你的數(shù)據(jù)庫 String user=“book“; String password=“; Connection con= DriverManager.getConnection(url,user,password);,(3)、 獲取數(shù)據(jù)庫信息和創(chuàng)建接口Statement對象 數(shù)據(jù)庫連接成功后,可以使用Connection對象的getMetaData方法取得接口DatabaseMetaData(提供大量的方法)對象來了解數(shù)據(jù)源或數(shù)據(jù)庫的各種信息。 數(shù)據(jù)庫連接成功后,還可以使用向數(shù)據(jù)庫發(fā)送訪問數(shù)據(jù)庫的SQL語句的方法來存取數(shù)據(jù)庫。JDBC使用接口Statement的對象(或執(zhí)行數(shù)據(jù)庫存儲過程的子接口CallableStatement、發(fā)送帶參數(shù)的SQL語句的子接口PreparedStatement)來發(fā)送SQL語句,Statement對象可用Connection的方法createStatement()來返回。例如: Statement st = con.createStatement();,(4)、 執(zhí)行SQL語句以存取數(shù)據(jù)庫 希望執(zhí)行的SQL語句串作為Statement的方法execute()等的參數(shù)向數(shù)據(jù)庫傳送,以交給數(shù)據(jù)庫引擎,執(zhí)行SQL對數(shù)據(jù)庫的訪問操作。對數(shù)據(jù)庫訪問結(jié)果是一個數(shù)據(jù)表的情況,可將這個表(結(jié)果集)存入接口ResultSet的對象。 提交SQL語句的Statement的方法有execute、executeQuery和executeUpdate等,分別用于不同類型的SQL語句的提交。 executeQuery:用于產(chǎn)生單個結(jié)果集的語句,如查詢語句select。 executeUpdate:用于執(zhí)行不產(chǎn)生結(jié)果集的語句,如insert,delete,update等。 execute:可用于執(zhí)行產(chǎn)生多個結(jié)果集或?qū)?shù)據(jù)庫進行多個操作的SQL語句。,(5)、 對執(zhí)行SQL語句的結(jié)果進行處理 Statement對象將SQL語句封裝起來交給數(shù)據(jù)庫引擎,執(zhí)行select查詢語句,將得到結(jié)果集ResultSet對象(注意:執(zhí)行insert、delete、update等查詢語句無結(jié)果集)。 接口ResultSet對象封裝了執(zhí)行SQL語句的返回結(jié)果,以后可根據(jù)需要,以便在屏幕上顯示結(jié)果或做進一步的處理。 在執(zhí)行select語句后的返回結(jié)果中,包含了數(shù)據(jù)表和數(shù)據(jù)表內(nèi)容的相關(guān)信息。關(guān)于數(shù)據(jù)表的信息可通過ResultSet的getMetaData方法來創(chuàng)建ResultSetMetaData對象,由這個對象可獲取所需數(shù)據(jù)庫的信息。,例如: ResultSetMetaData rsmd = rs.getMetaData(); rsmd.getColumnCount() / 獲取列(字段)數(shù) rsmd.getColumnName(列號) / 獲取指定列(字段)的列名 在ResultSet中,提供了一整套的getXXX方法(如getInt,getString,getFloat,getDouble等)來訪問結(jié)果集中當前行的不同列(用列序號或列標題作為這些方法的參數(shù))的數(shù)據(jù)(類型不同時可將字段類型按照XXX類型來進行類型轉(zhuǎn)換),而next方法可使得訪問可對不同的行來進行。,例如,可用下面的程序段對book表的書名(name)和作者(author)進行訪問: ResultSet rs = st.executeQuery( “select name,author from book“); while(rs.next() System.out.println(rs.getString(name) +“ “ + rs.getString(3); ,ResultSet自動維護結(jié)果集當前數(shù)據(jù)行的指向光標,首先獲得結(jié)果集時,指向光標置于結(jié)果集的第一行前,以后每調(diào)用一次next方法,光標就向下移動一行,這樣可按照順序從第一行到最后一行逐行訪問結(jié)果集的每一行(訪問結(jié)束時next返回false值)。 在有些情況下,可能希望任意訪問而不是順序訪問結(jié)果集的數(shù)據(jù)行,對某些結(jié)果集,可能還希望通過結(jié)果集修改數(shù)據(jù)庫的數(shù)據(jù),則應(yīng)在createStatement 方法中加入如下的兩個參數(shù),即: Statement st = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);,如果只希望任意滾動結(jié)果集的指向光標,而不修改數(shù)據(jù)庫的數(shù)據(jù),則可在上述兩個參數(shù)中將第二個參數(shù)設(shè)置為ResultSet.CONCUR_READ_ONLY。 通過參數(shù)的設(shè)置,就可以用ResultSet的first,last,previous,absolute,relative等方法來設(shè)置當前行,并且還可以根據(jù)參數(shù)的更新設(shè)置,用insertRow(插入行)、deleteRow(刪除行)、updateRow(更新行)等方法來對數(shù)據(jù)庫表進行增、刪、改的操作。 (6)、 關(guān)閉連接 數(shù)據(jù)庫訪問結(jié)束,為保證數(shù)據(jù)庫數(shù)據(jù)的完整性和釋放系統(tǒng)資源,應(yīng)明確地關(guān)閉數(shù)據(jù)庫的連接:一般是關(guān)閉結(jié)果集、關(guān)閉數(shù)據(jù)庫訪問對象和關(guān)閉連接。,11.3.2 數(shù)據(jù)庫編程實例 1查詢數(shù)據(jù)庫舉例 利用前面創(chuàng)建的數(shù)據(jù)庫library.MDB和數(shù)據(jù)源mylibDB來對數(shù)據(jù)庫中的表book進行查詢,顯示表中所有圖書的編號(no)、書名(name)、作者(author)、出版日期(printdate)和版次(times)。 【例11-2】查詢數(shù)據(jù)庫舉例。 import java.sql.*; class jdbccx public static void main(String args) try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch(ClassNotFoundException ce) System.out.println(“SQLException:“+ce.getMessage(); ,try Connection conn= DriverManager.getConnection(“jdbc:odbc:mylibDB“); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(“select * from book“); while(rs.next() System.out.println(“編號:”+rs.getString(“no”)+“t”+ “書 名:“+rs.getString(“name“)+“t“+“作者:“+rs.getString (“author“)+“t“+“出版日期:“+rs.getDate(4)+“t“ +“印刷次數(shù):“+rs.getInt(5)+“t“+“價格:“+rs.getFloat(6); rs.close(); stmt.close(); catch(SQLException ce) System.out.println(“SQLException“+ce.getMessage(); ,【程序解析】 (1)、首先引入包:java.sql中的所有類。 (2)、利用查詢語句:select*from book查詢表中的記錄,查詢結(jié)果保存在結(jié)果集rs中。 (3)、通過while循環(huán),將查詢結(jié)果中的每一行記錄顯示在屏幕上。 (4)、 取得rs中的列值時,可以使用方法getXXX(列名),如程序中的rs.getString(“no”);表示取得列名為“no”的數(shù)據(jù)。XXX取決于該列的數(shù)據(jù)類型。如果該列為字符串型,則使用getString(),如果該列為整型,則使用getInt(),如果該列為浮點型,則使用getFloat()。 (5)、有時候,使用方法getXXX(列名)時,參數(shù)可以不使用列名,可以使用列的序號。 (6)、注意捕獲例外,見程序中的幾種例外類型。 (7)、程序中,在while循環(huán)體中“t”表示水平制表 (8)、在實際查詢中,往往只要查詢數(shù)據(jù)庫中的一些特定數(shù)據(jù),而不要查詢整個表中的所有記錄,使用參數(shù)查詢數(shù)據(jù)庫可以實現(xiàn)按條件查詢,SQL查詢語句SELECT中,應(yīng)用條件選項WHERE實現(xiàn)有條件地查詢。,2插入記錄舉例 通過Java程序,可以向數(shù)據(jù)庫中的表student中插入記錄。 見書【例11-3】插入記錄舉例。 【程序解析】 (1)、插入記錄使用方法是executeUpdate(),此方法不產(chǎn)生結(jié)果集。 (2)、需要注意的是:向表中插入記錄只允許插入不重復(fù)的記錄。 (3)、A行也可以改成: PreparedStatement pstmt=conn.prepareStatement(“insert into book values(?,?,?,?,?,?)“); pstmt.setString(1,“85492“); pstmt.setString(2,“java2實務(wù)“); pstmt.setString(3,“杜江“); pstmt.setDate(4,Date.valueOf(“2008-12-12“); pstmt.setInt(5,4); pstmt.setFloat(6,34.5f); pstmt.executeUpdate(); 用PreparedStatement語句時,可使用“占位符”?來表示SQL命令中可變部分提高效率。setXXX()方法中的第一個參數(shù)是所對應(yīng)“?”的參數(shù)序號,第二個參數(shù)是“?”代表的參數(shù)的值。,3修改記錄舉例 修改表book中的第1條記錄:將java程序設(shè)計的no改為20090110。 【例11-4】修改記錄舉例。,4刪除記錄舉例 【例11-5】將表book中的作者是杜江的圖書記錄。,5建立表舉例 不但可以在數(shù)據(jù)庫中創(chuàng)建表,也可以在程序中通過JDBC來建立一個新表,建立表包括建立的表的結(jié)構(gòu)和記錄。例如,建立表publishing,表結(jié)構(gòu)有press(出版社)和num(銷量),然后向表中插入如下兩條記錄: 清華大學(xué) ,120000000 中國水利水電,110000000,【例11-6】建立表舉例。 import java.sql.*; class jdbcjianlibiao public

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論