




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、13.JDBC編程講師:瘋狂軟件 本章要點關(guān)系數(shù)據(jù)庫與SQL語句SQL語法JDBC核心API使用JDBC執(zhí)行SQL語句分析數(shù)據(jù)庫的兩種方式事務JDBC中的事務控制瘋狂軟件 JDBC概述通過使用JDBC API,Java程序可以非常方便地操作各種主流數(shù)據(jù)庫,這是是Java語言的巨大魅力所在。而且由于Java語言的跨平臺特性,所以使用JDBC API所編寫的程序不僅可以實現(xiàn)跨數(shù)據(jù)庫,還可以跨平臺,具有非常優(yōu)秀的可移植性。程序使用JDBC API以統(tǒng)一的方式來連接不同的數(shù)據(jù)庫, 然后通過Statement對象來執(zhí)行標準SQL語句,并可以獲得SQ
2、L語句訪問數(shù)據(jù)庫的結(jié)果。因此掌握標準SQL語句是學習JDBC編程的基礎(chǔ),本章將會簡要介紹關(guān)系數(shù)據(jù)庫理論基礎(chǔ),并以MySQL數(shù)據(jù)庫為例來講解標準SQL語句的語法細節(jié)。包括基本查詢語句,多表連接查詢和子查詢等。瘋狂軟件 JDBC驅(qū)動示意為了JDBC程序可以跨平臺,則需要不同數(shù)據(jù)庫廠商提供相應的驅(qū)動,下圖顯示了JDBC驅(qū)動的示意圖。瘋狂軟件 JDBC驅(qū)動程序類型第一種JDBC驅(qū)動:稱為JDBCODBC橋,這種驅(qū)動是最早實現(xiàn)的JDBC驅(qū)動程序,主要目的是為了快速推廣 JDBC。這種驅(qū)動程序?qū)DBC API映射到ODBC API。JDBC-ODB
3、C也需要驅(qū)動,這種驅(qū)動由Sun公司提供實現(xiàn)。第二種JDBC驅(qū)動:直接將JDBC API映射成數(shù)據(jù)庫特定的客戶端API。這種驅(qū)動程序包含特定數(shù)據(jù)庫的本地代碼, 用于訪問特定數(shù)據(jù)庫的客戶端。第三種JDBC驅(qū)動:支持三層結(jié)構(gòu)的JDBC訪問方式。主要用于Applet階段,通過Applet訪問數(shù)據(jù)庫。第四種JDBC驅(qū)動:是純Java的,直接與數(shù)據(jù)庫實例交互。這種驅(qū)動是智能的,它知道數(shù)據(jù)庫使用的底層協(xié)議。這 種驅(qū)動是目前最流行的JDBC驅(qū)動。瘋狂軟件 安裝MySQL(1) 下載MySQL安裝文件(2) 開始安裝MySQL后,在出現(xiàn)的對話框中單擊“Next”按鈕。(3) 單擊對話
4、框的“Next”按鈕,將出現(xiàn)選擇安裝組件和安裝路徑的對話框。(4) 單擊對話框中的“Next”按鈕,將可開始安裝MySQL數(shù)據(jù)庫系統(tǒng)。安裝成功后,系統(tǒng)還要求配置MySQL數(shù)據(jù)庫。(5) 配置數(shù)據(jù)庫時注意選擇合適的字符集,并設(shè)置。瘋狂軟件 MySQL的常見命令show databases;drop database 數(shù)據(jù)庫名;use 數(shù)據(jù)庫名show tables;desc 表名瘋狂軟件 MySQL的兩種存儲機制MyISAM:這是MySQL早期默認的存儲機制,對事務支持不夠好。InnoDB:InnoDB提供事務安全的存儲機制。InnoDB通
5、過建立行級鎖來保證事務完整性, 并以O(shè)racle風格的共享鎖來處理Select語句。系統(tǒng)默認啟動InnoDB機制,如果不想使用InnoDB表,可以使用skip-innodb 選項。瘋狂軟件 SQL語句SQL的全稱是Structured Query Language,也就是結(jié)構(gòu)化查詢語言。SQL是操作和檢索關(guān)系型數(shù)據(jù)庫的標準語言, 標準SQL語句可用于操作任何關(guān)系數(shù)據(jù)庫。使用SQL語句,程序員和數(shù)據(jù)庫管理員(DBA)可以完成如下的任務:在數(shù)據(jù)庫中檢索需要的信息。對數(shù)據(jù)庫的信息進行更新。改變數(shù)據(jù)庫的結(jié)構(gòu)。更改系統(tǒng)的安全設(shè)置。增加用戶對數(shù)據(jù)庫或表的許可權(quán)限。瘋狂軟件 ww
6、SQL語句分類查詢語句:主要由于select關(guān)鍵字完成,查詢語句是SQL 語句中最復雜,功能也最豐富的語句。DML語句(Data Manipulation Language,即數(shù)據(jù)操作語insert、update和delete三個關(guān)鍵字完成。言):主要由DDL語句(Data Definition Language,即使數(shù)據(jù)定義語言):主要由create、alter、drop和truncate四個關(guān)鍵字完成。DCL語句(Data Control Language,即使數(shù)據(jù)控制語言): 主要由grant 和revoke兩個關(guān)鍵字完成。事務控制語句:主要由commit、rol
7、lback和savepoint三個關(guān)鍵字完成。瘋狂軟件 DDL語句DDL語句是操作數(shù)據(jù)庫對象的語句,包括 創(chuàng)建(create) 刪除(drop) 修改(alter)數(shù)據(jù)庫對象。瘋狂軟件 數(shù)據(jù)庫對象瘋狂軟件 對象名稱對應關(guān)鍵字描述表table表是存儲數(shù)據(jù)的邏輯單元,以行和列的形式存在;列就是字段,行就是記錄。數(shù)據(jù)字典就是系統(tǒng)表,存放數(shù)據(jù)庫相關(guān)信息的表。系統(tǒng)表里的數(shù)據(jù)通常由數(shù)據(jù)庫系統(tǒng)維護。程序員通常不應該手動修改系統(tǒng)表及內(nèi)部數(shù)據(jù),程序員只可查看系統(tǒng)表的數(shù)據(jù)。約束constraint執(zhí)行數(shù)據(jù)校驗的規(guī)則,用于保證了數(shù)據(jù)
8、完整性的規(guī)則。視圖view一個或者多個數(shù)據(jù)表里數(shù)據(jù)的邏輯顯示。視圖并不存儲數(shù)據(jù)。索引index用于提高查詢的性能,相當于書的目錄。函數(shù)function用于完成一次特定的計算,具有一個返回值。存儲過程procedure用于完成一次完整的業(yè)務處理,沒有返回值,但可通過傳出參數(shù)將多個值傳給調(diào)用環(huán)境。觸發(fā)器trigger相當于一個器,當數(shù)據(jù)庫發(fā)生特定后, 觸發(fā)器被觸發(fā),完成響應的處理。創(chuàng)建表的語法create table 模式名.表名(- 可以有多個列定義columnName1 datatype default expr ,)瘋狂軟件 修改表(增加列)的語法alter ta
9、ble 表名add (- 可以有多個列定義column_name1 datatype default expr ,);瘋狂軟件 修改表(修改列)的語法alter table 表名modify column_name datatype default expr first|after col_name;瘋狂軟件 修改表(刪除列)的語法alter table 表名drop column_name瘋狂軟件 刪除表的語法drop table 表名;瘋狂軟件 約束大部分數(shù)據(jù)庫支持下面五類完整性
10、約束: NOT NULL:非空約束,指定某列不能為空。 UNIQUE:唯一約束,指定某列或者幾列組合不能重復。 PRIMARY KEY:主鍵,指定該列的值可以唯一地表示該條記錄。 FOREIGN KEY:外鍵,指定該行記錄從屬于主表中的一條記錄,主要用于保證參照完整性。 CHECK:檢查,指定一個布爾表達式,用于指定對應列的值必須滿足該表達式。瘋狂軟件 索引索引是存放在模式(schema)中的一個數(shù)據(jù)庫對象,雖 然索引總是從屬于數(shù)據(jù)表,但它也和數(shù)據(jù)表一樣,屬于 數(shù)據(jù)庫對象。創(chuàng)建索引唯一的作用就是加速對表的查詢, 索引通過使用快速路徑訪問方法來快速定位數(shù)據(jù),從而 減少
11、了磁盤的I/O。創(chuàng)建索引有兩種方式: 自動:當在表上定義主鍵約束、唯一約束和外鍵約束時,系統(tǒng)會為該數(shù)據(jù)列自動創(chuàng)建對應的索引。 手動:用戶可以手動創(chuàng)建索引來加速查詢。刪除索引也有兩種方式: 自動:數(shù)據(jù)表被刪除時,該表上的索引自動被刪除。 手動:用戶可以手動刪除指定數(shù)據(jù)表上的指定索引。瘋狂軟件 視圖視圖看上去非常像一個數(shù)據(jù)表,但它不是數(shù)據(jù)表,因為它并不能存儲數(shù)據(jù)。視圖只是一個或多個數(shù)據(jù)表中數(shù)據(jù)的邏輯顯示。使用視圖有如下幾個好處: 可以限制對數(shù)據(jù)的訪問。 可以使復雜的查詢變得簡單。 提供了數(shù)據(jù)的獨立性。 提供了對相同數(shù)據(jù)的不同顯示。瘋狂軟件 創(chuàng)
12、建視圖的語法create or replace view 視圖名assubquery瘋狂軟件 DML語句與DDL操作數(shù)據(jù)庫對象不同,DML主要操作數(shù)據(jù)表里的數(shù)據(jù),使用DML可以完成如下三個任務: 插入新數(shù)據(jù)。 修改已有數(shù)據(jù)。 刪除不需要的數(shù)據(jù)。瘋狂軟件 insert intoinsert into用于向指定數(shù)據(jù)表中插入記錄。對于標準SQL語句而言,每次只能插入一條記錄。insert into命令的語法格式如下: insert into table_name (column , column.) values(value , value.)
13、;瘋狂軟件 update語句update語句用于修改數(shù)據(jù)庫記錄,每次修改可以修改多條記錄,可通過使用where子句限定修改哪些記錄。where 子句是一個條件表達式,該條件表達式類似于Java編程語言的if,只有符合該條件的記錄才會被修改。如果沒有where子句意味著where子句的表達式值總是true,即該表的所有記錄都會被修改。update語句的語法格式如下:update table_nameset column1= value1, column2 = value2 WHERE condition;瘋狂軟件 delete from語句
14、delete from語句用于刪除指定數(shù)據(jù)表的記錄,使用delete from刪除時不需要指定列名,因為刪除總是整行整行地刪除。delete from刪除可以一次刪除多行,刪除哪些行采用where子句限定,只刪除滿足where條件的記錄。沒有where子句將會把表里的全部記錄刪除。delete from語句的語法格式如下: delete from table_name WHERE condition;瘋狂軟件 SELECT語句select語句功能就是查詢數(shù)據(jù),select語句也是SQL語句能最豐富的語句,select語句不僅可以執(zhí)行單表查詢,還可以執(zhí)行多表連接查詢,
15、還可以進行子查詢,select語句用于從一個或多個數(shù)據(jù)表中選出特定行、特定列的交集。最簡單的select語句的語法格式如下: select column1, column2 . from 數(shù)據(jù)源 where condition瘋狂軟件 SELECT語句的規(guī)則當使用select語句進行查詢時,還可以在select語句中使用算術(shù)運算符(+-*/),從而形成算術(shù)表達式,使用算數(shù)表達式的規(guī)則如下:對數(shù)值型數(shù)據(jù)列、變量、常量可以使用算數(shù)操作符(+-*/)創(chuàng)建表達式。對日期型數(shù)據(jù)列、變量、常量可以使用部分算數(shù)操作符創(chuàng)建表達式 (+-),兩個日期之間可以進行減法運算,日期和數(shù)值之
16、間可進行加、減運算。運算符不僅可以在列和常量、變量之間進行運算,也可以在兩列之間進行運算。瘋狂軟件 特殊比較運算符瘋狂軟件 運算符含義between val1 and val2大于等于val1,且小于等于val2。in(list)等于括號里多個值的任意之一。like字符串匹配,like后的字符串支持通配符。is null要求指定值等于null。數(shù)據(jù)庫函數(shù)每個數(shù)據(jù)庫都會在標準SQL基礎(chǔ)上擴展一些函數(shù),這些函數(shù)用于進行數(shù)據(jù)處理或復雜計算,根據(jù)函數(shù)對多行數(shù)據(jù)的處理方式,函數(shù)被分為單行函數(shù)和多行函數(shù),單行函數(shù)對每行輸入值單獨計算,每行得到一個計算
17、結(jié)果返回給用戶。多行函數(shù)對多行輸入值整體計算,最后只會得到一個結(jié)果。單行函數(shù)和的多行函數(shù)的示意如圖所示:瘋狂軟件 組函數(shù)組函數(shù)也就是前面提到多行函數(shù),組函數(shù)將一組記錄作為整體計算, 每一組記錄返回一個結(jié)果,而不是每一條記錄返回一個結(jié)果。常用的組函數(shù)有如下5個:avg(distinct|allexpr):計算多行expr的平均值,其中expr可以是變量、常量或數(shù)據(jù)列,但其數(shù)據(jù)類型必須數(shù)值型。還可以在變量、列前使用distinct或all關(guān)鍵字,如果使用distinct表明不計算重復值;all用和不用的效果完全一樣,表明需要計算重復值。count( *|distinct
18、|allexpr):計算多行expr的平均值,其中expr可以是變量、常量或數(shù)據(jù)列,其數(shù)據(jù)類型可以是任意類型。用星號(*)表示統(tǒng)計該表內(nèi)的記錄行數(shù)。其中distinct表示不計算重復值。max(distinctexpr):計算多行expr的平均值,其中expr可以是變量、常量或數(shù)據(jù)列,其數(shù)據(jù)類型可以是任意類型。其中distinct表示不計算重復值。min(distinctexpr):計算多行expr的平均值,其中expr可以是變量、常量或數(shù)據(jù)列,其數(shù)據(jù)類型可以是任意類型。其中distinct表示不計算重復值。sum(distinct|allexpr):計算多行expr的總和,其中expr可以是
19、變量、常量或數(shù)據(jù)列,但其數(shù)據(jù)類型必須數(shù)值型。其中distinct表示不計算重復值。瘋狂軟件 多表連接查詢多表連接查詢有兩種規(guī)范,較早的SQL92規(guī)范中支持如下幾種多表連接查詢: 等值連接。 非等值連接。 外連接。 廣義笛卡爾積。瘋狂軟件 SQL99的多表連接查詢SQL99規(guī)則提供了可讀性更好的多表連接語法,并提供更多類型的連接查詢,SQL99支持如下幾種多表連接查詢: 交叉連接。 自然連接。 使用using子句的連接。 使用on子句的連接。 全外連接或者左右外連接。瘋狂軟件 子查詢子查詢就是指在查詢語句中嵌套另
20、一個查詢,子查詢可以支持多層嵌套。對于一個普通查詢語句而言,子查詢可以出現(xiàn)在兩個位置: 出現(xiàn)在from語句后當成數(shù)據(jù)表,這種用法也被稱為行內(nèi)視圖,因為該子查詢的實質(zhì)就是一個臨時視圖。 出現(xiàn)在where條件后作為過濾條件的值。瘋狂軟件 使用子查詢的注意點使用子查詢時有如下幾個注意點: 子查詢要用括號括起來。 子查詢當成數(shù)據(jù)表時,可以為該子查詢起別名, 尤其是要作為前綴來限定數(shù)據(jù)列時,必須給子 查詢起別名。 子查詢當過濾條件時,將子查詢放在比較運算符的右邊,這樣可以增強查詢的可讀性。 子查詢當過濾條件時,單行子查詢使用單行運算符,多行子查詢使用多行運算符。瘋狂軟件 ww
21、JDBC常用接口和類DriverManagerConnection Statement PreparedStatementResultSet瘋狂軟件 JDBC編程步驟(1) 加載數(shù)據(jù)庫驅(qū)動。(2) 通過DriverManager獲取數(shù)據(jù)庫連接。(3) 通過Connection對象創(chuàng)建Statement對象。(4) 使用Statement執(zhí)行SQL語句。所有Statement都有如下三個方法來執(zhí)行SQL語句。(5) 操作結(jié)果集。如果執(zhí)行的SQL語句是查詢語句,執(zhí)行結(jié)果將返回一個ResultSet對象,該對象里保存了SQL語句查詢的結(jié)果。程序可以
22、通過操作該ResultSet對象來取出查詢結(jié)果。瘋狂軟件 JDBC執(zhí)行SQL語句的方式使用executeUpdate執(zhí)行DDL和DML語句使用execute方法執(zhí)行SQL語句使用executeQuery方法執(zhí)行查詢語句瘋狂軟件 PreparedStatementJDBC提供了PreparedStatement接口,它是Statement接口的子接口,它可以預編譯SQL語句,預編譯后的SQL語句被存儲在PreparedStatement對象中。然后可以使用該對象多次高效地執(zhí)行該語句。簡而言之,使用PreparedStatement比使用St
23、atement的效率要高。使用PreparedStatement比使用Statement多了如下三個好處:PreparedStatement預編譯SQL語句,性能更好。PreparedStatment無需“拼接”SQL語句,編程更簡單。PreparedStatement可以防止SQL注入,安全性更好。瘋狂軟件 CallableStatment調(diào)用存儲過程使用CallableStatement,可以通過Connection的prepareCall方法來創(chuàng)建CallableStatement對象, 創(chuàng)建該對象時需要傳入調(diào)用存儲過程的SQL語句,調(diào)用存儲過程的SQL語句總
24、是這種格式:call 過程名(?,?,?.),其中的問號作為存儲過程參數(shù)的占位符。存儲過程的參數(shù)既有傳入?yún)?shù),也有傳出參數(shù)。所謂傳入?yún)?shù)就是Java程序必須為這些參數(shù)傳入值,那么可以通過CallableStatement的setXxx方法為傳入?yún)?shù)設(shè)置值; 所謂傳出參數(shù)就是Java程序可以通過該參數(shù)獲取存儲過程里的值,那么CallableStatement需要調(diào)用registerOutParameter方法來注冊該參數(shù)。瘋狂軟件 可滾動、可更新的結(jié)果集以默認方式打開的ResultSet是不可更新的,如果希望創(chuàng)建可更新的ResultSet,必須在創(chuàng)建Statement
25、或PreparedStatement時傳入額外的參 數(shù)。Connection在創(chuàng)建Statement或PreparedStatement時還可額外傳入兩個參數(shù):resultSetType:控制ResultSet的類型,該參數(shù)可以是如下三個值:ResultSet.TYPE_FORWARD_ONLY:該常量控制記錄指針只能向前移動。這 是 JDK1.4 以 前 的 默 認 值 。 ResultSet.TYPE_SCROLL_INSENSITIVE:該常量控制記錄指針可以自由移動(可滾動結(jié)果集),但底層數(shù)據(jù)的改變不會影響ResultSet的內(nèi)容。ResultSet.TYPE_SCROLL_SENSI
26、TIVE:該常量控制記錄指針可以自由移動(可滾動結(jié)果集),而且底層數(shù)據(jù)的改變會影響ResultSet的內(nèi)容。resultSetConcurrency:控制ResultSet的并發(fā)類型,該參數(shù)可以接受如 下兩個值:ResultSet.CONCUR_READ_ONLY:該常量指示ResultSet是只讀的并發(fā)模式(默認)。ResultSet.CONCUR_UPDATABLE:該常量指示ResultSet是可更新的并發(fā)模式。瘋狂軟件 處理Blob類型數(shù)據(jù)所以將Blob數(shù)據(jù)插入數(shù)據(jù)庫需要使用PreparedStatement, 該對象有一個方法:setBinaryStrea
27、m(int parameterIndex, InputStream x),該方法可以為指定參數(shù)傳入二進制輸入流,從而可以實現(xiàn)將Blob數(shù)據(jù)保存到數(shù)據(jù)庫的功能。當我們需要從ResultSet里取出Blob數(shù)據(jù)時,可以調(diào)用ResultSet的getBlob(int columnIndex)方法,該方法將返回一個Blob對象,Blob對象提供了getBinaryStream方法來獲取該Blob數(shù)據(jù)的輸入流,也可使用Blob對象提供的getBytes方法直接取出該Blob對象封裝的二進制數(shù)據(jù)。瘋狂軟件 使用ResultSetMetaDataResultSet里包含一個get
28、MetaData()方法,該方法返回該ResultSet對應的ResultSetMetaData對象。一旦獲得了ResultSetMetaData對象,就可通過ResultSetMetaData提供的大量的方法來返回ResultSet的描述信息,常用的方法有如下三個:int getColumnCount():返回該ResultSet的列數(shù)量。String getColumnName(int column):返回指定索引的列名。int getColumnType(int column):返回指定索引的列類型。瘋狂軟件 事務事務是由一步或幾步數(shù)據(jù)庫操作序列組成的邏輯執(zhí)行
29、單元,這系列操作要么全部執(zhí)行,要么全部放棄執(zhí)行。程序和事務是兩個不同的概念。一般而言:一段程序中可能包含多個事務。事務具備四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、和持續(xù)性(Durability)。這四個特性也簡稱為ACID 性。原子性(Atomicity)一致性(Consistency) 隔離性(Isolation) 持續(xù)性(Durability)瘋狂軟件 事務的組成數(shù)據(jù)庫的事務由下列語句組成: 一組DML語句,經(jīng)過這組DML修改后數(shù)據(jù)將保持較好的一致性。 一個DDL 語句。 一個 DCL 語句。DDL
30、和DCL語句最多只能有一個,因為DDL和DCL語句都會導致事務立即提交。瘋狂軟件 事務的結(jié)束當事務所包含的全部數(shù)據(jù)庫操作都成功執(zhí)行后,應該提交(commit)事務,使這些修改永久生效。事務提交有兩種方式:顯式提交和自動提交。 顯式提交:使用commit。 自動提交:執(zhí)行DDL或DCL,或者程序正常退出。當事務所包含的任意一個數(shù)據(jù)庫操作執(zhí)行失敗后,應該 回滾(rollback)事務,使該事務中所作的修改全部失效。事務回滾有兩種方式:顯式回滾和自動回滾。 顯式回滾:使用rollback。 自動回滾:系統(tǒng)錯誤或者強行退出。瘋狂軟件 JDBC的事
31、務支持Connection的setAutoCommit方法來關(guān)閉自動提交,開啟事務,如下SQL語句所示: conn.setAutoCommit(false);程序可以調(diào)用Connection的commit方法來提交事務,如下代碼所示: mit();如果任意一條SQL語句執(zhí)行失敗,我們應該用Connection的rollback來回滾事務,如下代碼所示: conn.rollback();瘋狂軟件 事務的中間點Connection也提供了設(shè)置中間點的方法:setSavepoint, Connection提供了兩個方法來設(shè)置中間點: Savepoint s
32、etSavepoint():在當前事務中創(chuàng)建一個未命名的中間點),并返回代表該中間點的Savepoint對象。 Savepoint setSavepoint(String name):在當前事務中創(chuàng)建一個具有指定名稱的中間點,并返回代表該中間點的Savepoint對象。通常來說,設(shè)置中間點時沒有太大的必要指定名稱,因為Connection回滾到指定中間點時,并不是根據(jù)名字回滾的,而是根據(jù)中間點對象回滾的。Connection提供了rollback(Savepoint savepoint)方法來回滾到指定中間點。瘋狂軟件 批量更新JDBC還提供了一個批量更新的功能,使
33、用批量更新時,多條SQL語句將會被作為一批操作被同時收集、并同時提交。批量更新必須得到底層數(shù)據(jù)庫的支持,可以通過調(diào)用DatabaseMetaData的supportsBatchUpdates方法來查看底層數(shù)據(jù)庫是否支持批量更新。使用批量更新也需要先創(chuàng)建一個Statement對象, 然后利用該對象addBatch方法將多條SQL語句同時收集起來,最后調(diào)用Statement對象的executeBatch同時執(zhí)行這些SQL語句。瘋狂軟件 DatabaseMetaDataJDBC提供了DatabaseMetaData來封裝數(shù)據(jù)庫連接對應數(shù)據(jù)庫的信息,通過Connection提供的getMetaData()方法就可以獲取到數(shù)據(jù)庫對應的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編人教版一年級下冊語文閱讀材料復習計劃
- 網(wǎng)絡(luò)廣告行業(yè)的精準投放與效果評估研究
- 消防系統(tǒng)羅托克電動執(zhí)行器說明書
- 2025至2030中國肉蛋白質(zhì)分析設(shè)備行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國羽毛服裝行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國網(wǎng)絡(luò)安全設(shè)備行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國網(wǎng)格交互式熱水器行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國綠化苗木行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資策略報告
- 網(wǎng)絡(luò)平臺建設(shè)及運行維護快速響應策略
- 希沃白板提升課堂互動效果的心得體會
- 2025年重慶出版集團招聘筆試沖刺題2025
- 明星考試題及答案
- 小學生暑假安全教育主題班會教案
- 開展打擊電信網(wǎng)絡(luò)詐騙知識培訓
- 冬雨季施工進度保障措施
- 2025至2030中國食品軟管行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年中新天津生態(tài)城教育系統(tǒng)教職人員招聘考試筆試試題
- 三非人員介紹課件
- 工地施工特種設(shè)備管理制度
- 江蘇省南京、鎮(zhèn)江、徐州三市多校聯(lián)考2025年高二下第二學期5月月考語文試卷
- 瀝青路面施工質(zhì)量控制要點課件
評論
0/150
提交評論