



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、 #第一個(gè)hibernate項(xiàng)目1、新建java項(xiàng)目2、創(chuàng)建User Library, 加入如下jar* HIBERNATE_HOME/hibernate3.jar* HIBERNATE_HOME/lib/*.jar* MySql jdbc驅(qū)動(dòng)3、創(chuàng)建hibernate 配置文件hibernate.cfg.xml,為了便于調(diào)試最好加入log4j配置文件4、定義實(shí)體類5、定義 User 類的映射文件User.hbm.xml6、將 User.hbml.xml 文件加入到hibernate.cfg.xml文件中7、編寫 hbm2ddl 工具類,將實(shí)體類生成數(shù)據(jù)庫(kù)表8、開發(fā)客戶端為 了 方 便 跟
2、 蹤sql執(zhí) 行 , 在hibernate.cfg.xml文 件 中加 入<propertyname="hibernate.show_sql"> true</property>2、 #測(cè)試實(shí)體對(duì)象的生命周期junit 簡(jiǎn)介:* 編寫測(cè)試類 xxxTest,需要繼承 TestCase* 編寫單元測(cè)試方法, 測(cè)試方法必須以 test 開頭,測(cè)試方法不能含有參數(shù)和返回值, 如: public void testHello1() * 最好單元測(cè)試的代碼單獨(dú)建立一個(gè)目錄了解Hibernate中CRUD操作了解get 和 load 的區(qū)別?* get 不支持 l
3、azy, load 支持 lazy* 采用 get 加載數(shù)據(jù),如果沒有匹配的數(shù)據(jù),返回null ,而load 則拋出異常transient 狀態(tài)的特征?* 在數(shù)據(jù)庫(kù)中沒有與之匹配的數(shù)據(jù)* 沒有納入 session的管理persistent 狀態(tài)的特征?* persistent 狀態(tài)的對(duì)象在數(shù)據(jù)庫(kù)中有與之匹配的數(shù)據(jù)* 納入了 session 的管理* 在清理緩存(臟數(shù)據(jù)檢查)的時(shí)候,會(huì)和數(shù)據(jù)庫(kù)同步detached 狀態(tài)的特征?* 在數(shù)據(jù)庫(kù)中有與之匹配的數(shù)據(jù)* 沒有納入 session的管理3、 hibernate 基本映射實(shí)體類 -表實(shí)體類中的普通屬性-表字段采用 <class>標(biāo)簽
4、映射成數(shù)據(jù)庫(kù)表,通過<property> 標(biāo)簽將普通屬性映射成表字段所謂普通屬性指不包括自定義類、集合和數(shù)組等注意:如果實(shí)體類和實(shí)體類中的屬性和sql 中的關(guān)鍵字重復(fù),必須采用table 或命名column重新實(shí)體類的設(shè)計(jì)原則:* 實(shí)現(xiàn)一個(gè)默認(rèn)的(即無參數(shù)的)構(gòu)造方法(constructor )* 提供一個(gè)標(biāo)識(shí)屬性( identifier property )(可選)* 使用非 final 的類 (可選 )* 為持久化字段聲明訪問器 (accessors)主鍵生成策略:uuid 、 native 和 assignedsessionfactory 接口4、 hibernate 多對(duì)一
5、關(guān)聯(lián)映射關(guān)聯(lián)映射的本質(zhì):* 將關(guān)聯(lián)關(guān)系映射到數(shù)據(jù)庫(kù),所謂的關(guān)聯(lián)關(guān)系是對(duì)象模型在內(nèi)存中的一個(gè)或多個(gè)引用<many-to-one> 會(huì)在多的一端加入一個(gè)外鍵,指向一的一端,這個(gè)外鍵是由<many-to-one>中的 column 屬性定義的,如果忽略了這個(gè)屬性那么默認(rèn)的外鍵與實(shí)體的屬性一致<many-to-one> 標(biāo)簽的定義示例:* <many-to-one name="group" column="groupid"/>理解級(jí)聯(lián)的含義?* 是對(duì)象的連鎖操作:cascade5、 hibernate 一對(duì)一主鍵關(guān)
6、聯(lián)映射(單向關(guān)聯(lián)Person->IdCard )一對(duì)一主鍵關(guān)聯(lián)映射:讓兩個(gè)實(shí)體對(duì)象的id 保持相同,這樣可以避免多余的字段被創(chuàng)建具體映射:<id name="id"><!- person 的主鍵來源idCard ,也就是共享idCard的主鍵-><generator class="foreign"><param name="property">idCard</param></generator></id><property name=&qu
7、ot;name"/><!- one-to-one 標(biāo)簽的含義, 指示 hibernate 怎么加載它的關(guān)聯(lián)對(duì)象,默認(rèn)根據(jù)主鍵加載,constrained="true" ,表明當(dāng)前主鍵上存在一個(gè)約束,person 的主鍵作為外鍵參照了idCard-><one-to-one name="idCard" constrained="true"/>6、 ibernate 一對(duì)一主鍵關(guān)聯(lián)映射(雙向關(guān)聯(lián)Person<->IdCard )需要在 idcard 映射文件中加入 <one-to-o
8、ne> 標(biāo)簽指向 person,指示 hibernate 如何加載 person 默認(rèn)根據(jù)主鍵加載7、 hibernate 一對(duì)一唯一外鍵關(guān)聯(lián)映射(單向關(guān)聯(lián)Person->IdCard )一對(duì)唯一外鍵關(guān)聯(lián)映射是多對(duì)一關(guān)聯(lián)映射的特例可以采用 <many-to-one> 標(biāo)簽,指定多的一端的unique=true ,這樣就限制了多的一端的多重性為一通過這種手段映射一對(duì)一唯一外鍵關(guān)聯(lián)8、 hibernate 一對(duì)一唯一外鍵關(guān)聯(lián)映射(雙向關(guān)聯(lián)Person<->IdCard )一對(duì)一唯一外鍵關(guān)聯(lián)雙向,需要在另一端( idcard),添加 <one-to-one&
9、gt; 標(biāo)簽,指示 hibernate 如何加載其關(guān)聯(lián)對(duì)象,默認(rèn)根據(jù)主鍵加載 person,外鍵關(guān)聯(lián)映射中,因?yàn)閮蓚€(gè)實(shí)體采用的是 person 的外鍵維護(hù)的關(guān)系,所以不能指定主鍵加載person,而要根據(jù)person 的外鍵加載,所以采用如下映射方式:<one-to-one name="person" property-ref="idCard"/>9、 hibernate 多對(duì)多關(guān)聯(lián)映射(單向 User->Role)具體映射方式:<set name="roles" table="t_user_role
10、"><key column="userid"/><many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/> </set>10、 hibernate 多對(duì)多關(guān)聯(lián)映射(雙向 User<->Role)映射方法:<set name="roles" table="t_user_role"><key column="userid"/>
11、;<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/> </set>table 屬性值必須和單向關(guān)聯(lián)中的table 屬性值一致<key> 中 column 屬性值要與單向關(guān)聯(lián)中的 <many-to-many> 標(biāo)簽中的 column 屬性值一致在<many-to-many> 中的 column 屬性值要與單向關(guān)聯(lián)中 <key> 標(biāo)簽的 column 屬性值一致11、 hibernate 多對(duì)一關(guān)聯(lián)映射關(guān)聯(lián)映射
12、的本質(zhì):* 將關(guān)聯(lián)關(guān)系映射到數(shù)據(jù)庫(kù),所謂的關(guān)聯(lián)關(guān)系是對(duì)象模型在內(nèi)存中的一個(gè)或多個(gè)引用<many-to-one> 會(huì)在多的一端加入一個(gè)外鍵,指向一的一端,這個(gè)外鍵是由<many-to-one>中的 column 屬性定義的,如果忽略了這個(gè)屬性那么默認(rèn)的外鍵與實(shí)體的屬性一致<many-to-one> 標(biāo)簽的定義示例:* <many-to-one name="group" column="groupid"/>理解級(jí)聯(lián)的含義?* 是對(duì)象的連鎖操作12、 session flush 測(cè)試:session flush
13、方法主要做了兩件事:* 清理緩存* 執(zhí)行 sqlsession 在什么情況下執(zhí)行flush* 默認(rèn)在事務(wù)提交時(shí)* 顯示的調(diào)用 flush* 在執(zhí)行查詢前,如: iterate 13、 lazyhibernate lazy 策略可以使用在:* <class> 標(biāo)簽上,可以取值: true/false* <property> 標(biāo)簽上,可以取值:true/false 需要類增強(qiáng)工具* <set><list> 標(biāo)簽上,可以取值: true/false/extra* <one-to-one><many-to-one> 單端關(guān)聯(lián)上,可
14、以取值: false/proxy/noproxylazy概念:只有真正使用該對(duì)象時(shí),才會(huì)創(chuàng)建,對(duì)于hibernate 而言,正真使用的時(shí)候才會(huì)發(fā)出sqlhibernate 支持 lazy 策略只有在session 打開狀態(tài)下有效<class>標(biāo)簽上的lazy 特性只對(duì)普通屬性起作用hibernate 在集合上的lazy 策略,可以取值:true/false/extra<class>標(biāo)簽上的lazy 不會(huì)影響到集合上的lazy 特性hibernate 在單端關(guān)聯(lián)上的<class>標(biāo)簽上的lazylazy 策略,可以取值:不會(huì)影響到單端關(guān)聯(lián)上的false/pro
15、xy/noproxylazy 特性14、每棵繼承樹映射成一張表(1) 、理解如何映射因?yàn)轭惱^承樹肯定是對(duì)應(yīng)多個(gè)類, 要把多個(gè)類的信息存放在一張表中, 必須有某種機(jī)制來區(qū)分哪些記錄是屬于哪個(gè)類的。這種機(jī)制就是,在表中添加一個(gè)字段,用這個(gè)字段的值來進(jìn)行區(qū)分。用hibernate實(shí)現(xiàn)這種策略的時(shí)候,有如下步驟:父類用普通的<class>標(biāo)簽定義在父類中定義一個(gè) discriminator ,即指定這個(gè)區(qū)分的字段的名稱和類型如: <discriminator column= ”XXX ” type= ” string ” />子類使用 <subclass>標(biāo)簽定義,
16、在定義subclass 的時(shí)候,需要注意如下幾點(diǎn):Subclass 標(biāo)簽的 name 屬性是子類的全路徑名在 Subclass 標(biāo)簽中,用discriminator-value來區(qū)分不同類的字段)屬性來標(biāo)明本子類的discriminator字段(用的值 Subclass 標(biāo)簽,既可以被承關(guān)系),也可以與 class 標(biāo)class 標(biāo)簽所包含(這種包含關(guān)系正是表明了類之間的繼簽平行。當(dāng) subclass 標(biāo)簽的定義與class 標(biāo)簽平行的時(shí)候,需要在subclass 標(biāo)簽中,添加 extends 屬性,里面的值是父類的全路徑名稱。子類的其它屬性,像普通類一樣,定義在subclass 標(biāo)簽的內(nèi)部。
17、(2) 、理解如何存儲(chǔ)存儲(chǔ)的時(shí)候 hibernate 會(huì)自動(dòng)將鑒別字段值插入到數(shù)據(jù)庫(kù)中,在加載數(shù)據(jù)的時(shí)候, hibernate 能根據(jù)這個(gè)鑒別值正確的加載對(duì)象多態(tài)查詢:在hibernate 加載數(shù)據(jù)的時(shí)候能鑒別出正真的類型(instanceOf)get 支持多態(tài)查詢load 只有在 lazy=false ,才支持多態(tài)查詢hql 支持多態(tài)查詢15、每個(gè)子類映射成一張表(1) 、理解如何映射這種策略是使用 joined-subclass 標(biāo)簽來定義子類的。父類、子類,每個(gè)類都對(duì)應(yīng)一張數(shù)據(jù)庫(kù)表。在父類對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中,實(shí)際上會(huì)存儲(chǔ)所有的記錄,包括父類和子類的記錄;在子類對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中,這個(gè)表只定義
18、了子類中所特有的屬性映射的字段。子類與父類, 通過相同的主鍵值來關(guān)聯(lián)。實(shí)現(xiàn)這種策略的時(shí)候,有如下步驟:父類用普通的<class>標(biāo)簽定義即可父類不再需要定義discriminator 字段子類用 <joined-subclass> 標(biāo)簽定義,在定義joined-subclass 的時(shí)候,需要注意如下幾點(diǎn):Joined-subclass 標(biāo)簽的 name 屬性是子類的全路徑名Joined-subclass 標(biāo)簽需要包含一個(gè)key 標(biāo)簽,這個(gè)標(biāo)簽指定了子類和父類之間是通過哪個(gè)字段來關(guān)聯(lián)的。如: <key column= ” PARENT_KEY_ID”/>,這里
19、的column ,實(shí)際上就是父類的主鍵對(duì)應(yīng)的映射字段名稱。Joined-subclass 標(biāo)簽,既可以被 class 標(biāo)簽所包含 (這種包含關(guān)系正是表明了類之間的繼承關(guān)系),也可以與 class 標(biāo)簽平行。 當(dāng) Joined-subclass 標(biāo)簽的定義與 class 標(biāo)簽平行的時(shí)候,需要在 Joined-subclass標(biāo)簽中,添加 extends 屬性,里面的值是父類的全路徑名稱。子類的其它屬性,像普通類一樣,定義在 joined-subclass 標(biāo)簽的內(nèi)部。16、每個(gè)具體類映射成一張表(1) 、理解如何映射這種策略是使用 union-subclass 標(biāo)簽來定義子類的。每個(gè)子類對(duì)應(yīng)一張
20、表,而且這個(gè)表的信息是完備的,即包含了所有從父類繼承下來的屬性映射的字段(這就是它跟joined-subclass 的不同之處,joined-subclass 定義的子類的表, 只包含子類特有屬性映射的字段) 。實(shí)現(xiàn)這種策略的時(shí)候,有如下步驟:父類用普通 <class>標(biāo)簽定義即可子類用 <union-subclass> 標(biāo)簽定義,在定義 union-subclass 的時(shí)候,需要注意如下幾點(diǎn): Union-subclass 標(biāo)簽不再需要包含 key 標(biāo)簽(與 joined-subclass 不同) Union-subclass 標(biāo)簽,既可以被 class 標(biāo)簽所包含
21、(這種包含關(guān)系正是表明了類之間的繼承關(guān)系),也可以與 class 標(biāo)簽平行。 當(dāng) Union-subclass 標(biāo)簽的定義與 class 標(biāo)簽平行的時(shí)候,需要在 Union-subclass標(biāo)簽中,添加 extends 屬性,里面的值是父類的全路徑名稱。子類的其它屬性,像普通類一樣,定義在 Union-subclass 標(biāo)簽的內(nèi)部。這個(gè)時(shí)候,雖然在 union-subclass 里面定義的只有子類的屬性,但是因?yàn)樗^承了父類, 所以,不需要定義其它的屬性, 在映射到數(shù)據(jù)庫(kù)表的時(shí)候,依然包含了父類的所有屬性的映射字段。注意:在保存對(duì)象的時(shí)候id 是不能重復(fù)的(不能使用自增生成主鍵)17、 com
22、ponent 映射在 hibernate 中 ,component 是某個(gè)實(shí)體的邏輯組成部分,它與實(shí)體的根本區(qū)別是沒有oid ,component 可以成為是值對(duì)象(DDD )采用 component 映射的好處: 它實(shí)現(xiàn)了對(duì)象模型的細(xì)粒度劃分, 層次會(huì)更分明, 復(fù)用率會(huì)更高復(fù)合(聯(lián)合)主鍵映射通常將復(fù)合主鍵相關(guān)的屬性,單獨(dú)放到一個(gè)類中* 此類必須實(shí)現(xiàn)序列化接口* 覆寫 hashcode 和 equals 方法18、悲觀鎖樂觀鎖悲觀鎖的實(shí)現(xiàn), 通常依賴于數(shù)據(jù)庫(kù)機(jī)制, 在整個(gè)過程中將數(shù)據(jù)鎖定, 其它任何用戶都不能讀取或修改 .大多數(shù)基于數(shù)據(jù)版本記錄機(jī)制(讀取數(shù)據(jù)時(shí)將版本號(hào)一同讀出,等于數(shù)據(jù)表中v
23、ersion )實(shí)現(xiàn),一般是在數(shù)據(jù)庫(kù)表中加入一個(gè) version 字段之后更新數(shù)據(jù)時(shí)版本號(hào)加一, 如果提交數(shù)據(jù)時(shí)版本號(hào)小于或的版本號(hào),則認(rèn)為數(shù)據(jù)是過期的,否則給予更新。19、 hibernate 查詢語(yǔ)言hql在 hql 中關(guān)鍵字不區(qū)分大小寫,但是屬性和類名區(qū)分大小寫<1>、簡(jiǎn)單屬性查詢【重要】* 單一屬性查詢,返回結(jié)果集屬性列表,元素類型和實(shí)體類中相應(yīng)的屬性類型一致* 多個(gè)屬性查詢 ,返回的集合元素是對(duì)象數(shù)組 ,數(shù)組元素的類型和對(duì)應(yīng)的屬性在實(shí)體類中的類型一致數(shù)組的長(zhǎng)度取決與select 中屬性的個(gè)數(shù)* 如果認(rèn)為返回?cái)?shù)組不夠?qū)ο蠡?,可以采用hql 動(dòng)態(tài)實(shí)例化Student 對(duì)象參見
24、: SimplePropertyQueryTest.java<2>、實(shí)體對(duì)象查詢【重要】* N + 1 問題,在默認(rèn)情況下,使用query.iterate 查詢,有可以能出現(xiàn)N+1 問題所謂的 N+1 是在查詢的時(shí)候發(fā)出了N+1 條 sql 語(yǔ)句1: 首先發(fā)出一條查詢對(duì)象id 列表的 sqlN: 根據(jù)id 列表到緩存中查詢,如果緩存中不存在與之匹配的數(shù)據(jù),那么會(huì)根據(jù)id發(fā)出相應(yīng)的sql語(yǔ)句* list 和 iterate 的區(qū)別?* list 每次都會(huì)發(fā)出 sql 語(yǔ)句, list 會(huì)向緩存中放入數(shù)據(jù),而不利用緩存中的數(shù)據(jù)* iterate:在默認(rèn)情況下 iterate 利用緩存數(shù)
25、據(jù),但如果緩存中不存在數(shù)據(jù)有可以能出現(xiàn) N+1 問題參見: SimpleObjectQueryTest1.java/SimpleObjectQueryTest2.java<3>、條件查詢【重要】* 可以采用拼字符串的方式傳遞參數(shù)* 可以采用?來傳遞參數(shù)(索引從0 開始)* 可以采用 :參數(shù)名 來傳遞參數(shù)* 如果傳遞多個(gè)參數(shù),可以采用setParamterList 方法* 在 hql 中可以使用數(shù)據(jù)庫(kù)的函數(shù),如:date_format參見: SimpleConditionQueryTest.java<4>、 hibernate 也支持直接使用sql 進(jìn)行查詢參見: Sql
26、QueryTest.java<5>、外置命名查詢* 在映射文件中采用 <query> 標(biāo)簽來定義 hql* 在程序中采用 session.getNamedQuery()方法得到 hql 查詢串參見: Student.hbm.xml 、 NameQueryTest.java<6>、查詢過濾器* 在映射文件中定義過濾器參數(shù)* 在類的映射中使用這些參數(shù)* 在程序中啟用過濾器參見: Student.hbm.xml 、 FilterQueryTest.java<7>、分頁(yè)查詢【重要】* setFirstResult() ,從 0 開始* setMaxRes
27、ults, 每頁(yè)顯示多少條數(shù)據(jù)參見: PageQueryTest.java<8>、對(duì)象導(dǎo)航查詢,在hql 中采用. 進(jìn)行導(dǎo)航【重要】參見: ObjectNavQueryTest.java<9>、連接查詢【重要】* 內(nèi)連* 外連接(左連接 /右連接)參見: JoinQueryTest.java<10> 、統(tǒng)計(jì)查詢【重要】參見: StatQueryTest.java<11>、 DML 風(fēng)格的操作(盡量少用,因?yàn)楹途彺娌煌剑﹨⒁姡?DMLQueryTest.java20、 hibernate 一級(jí)緩存一級(jí)緩存很短和session的生命周期一致,一級(jí)緩
28、存也叫session級(jí)的緩存或事務(wù)級(jí)緩存那些方法支持一級(jí)緩存:* get()* load()* iterate (查詢實(shí)體對(duì)象)如何管理一級(jí)緩存:* session.clear(),session.evict()如何避免一次性大量的實(shí)體數(shù)據(jù)入庫(kù)導(dǎo)致內(nèi)存溢出* 先 flush ,再 clear如果數(shù)據(jù)量特別大,考慮采用jdbc 實(shí)現(xiàn),如果jdbc 也不能滿足要求可以考慮采用數(shù)據(jù)本身的特定導(dǎo)入工具21、 hibernate 二級(jí)緩存二級(jí)緩存也稱進(jìn)程級(jí)的緩存或SessionFactory 級(jí)的緩存,二級(jí)緩存可以被所有的session共享二級(jí)緩存的生命周期和SessionFactory 的生命周期一致
29、,SessionFactory 可以管理二級(jí)緩存二級(jí)緩存的配置和使用:* 將 echcache.xml 文件拷貝到src 下* 開啟二級(jí)緩存,修改hibernate.cfg.xml 文件<property name="hibernate.cache.use_second_level_cache">true</property>* 指定緩存產(chǎn)品提供商,修改hibernate.cfg.xml 文件 <propertyname="vider_class">org.hibernate.ca
30、che.EhCacheProvider</property>* 指定那些實(shí)體類使用二級(jí)緩存(兩種方法)* 在映射文件中采用 <cache>標(biāo)簽* 在 hibernate.cfg.xml 文件中,采用 <class-cache>標(biāo)簽二級(jí)緩存是緩存實(shí)體對(duì)象的了解一級(jí)緩存和二級(jí)緩存的交互22、 hibernate 查詢緩存查詢緩存是針對(duì)普通屬性結(jié)果集的緩存對(duì)實(shí)體對(duì)象的結(jié)果集只緩存id查詢緩存的生命周期,當(dāng)前關(guān)聯(lián)的表發(fā)生修改,那么查詢緩存生命周期結(jié)束查詢緩存的配置和使用:* 在 hibernate.cfg.xml 文件中啟用查詢緩存,如:<property n
31、ame="hibernate.cache.use_query_cache">true</property>* 在程序中必須手動(dòng)啟用查詢緩存,如:query.setCacheable(true);23、 hibernate 抓取策略(單端代理的批量抓取)保持默認(rèn),同fetch="select", 如:<many-to-one name="classes" column="classesid" fetch="select"/>fetch="select", 另外發(fā)送一條select 語(yǔ)句抓取當(dāng)前對(duì)象關(guān)聯(lián)實(shí)體或集合hibernate 抓取策略(單端代理的批量抓取)設(shè)置 fetch="join", 如:<many-to-one name="classes" column="classesid" fetch="join"/>fetch="join",hibernate會(huì)通過 select 語(yǔ)句使用外連接來加載其關(guān)聯(lián)實(shí)體或集合此時(shí) lazy 會(huì)失效hibernate
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 屋面光伏支架預(yù)埋施工方案
- 河南大型水景施工方案
- 邯鄲水泥板圍墻施工方案
- 安徽省天一大聯(lián)考2025屆高三3月調(diào)研考試歷史
- 山東一體化游泳池施工方案
- 塑膠樓地面施工方案
- 橋頭修復(fù)施工方案范本
- 道路鋼筋施工方案
- 森林培育技術(shù)發(fā)展應(yīng)用趨勢(shì)及管理措施的實(shí)踐分析
- 江蘇省泰州市興化市2024-2025學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題(原卷版+解析版)
- 2025年哈爾濱幼兒師范高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)學(xué)生專用
- 第10章 浮力較難2 難題練習(xí) 2021年初中物理培優(yōu)(重點(diǎn)高中自主招生 競(jìng)賽)
- 計(jì)算機(jī)一級(jí)測(cè)試題(附參考答案)
- 企業(yè)內(nèi)部系統(tǒng)使用權(quán)限規(guī)范
- 教學(xué)課件-液壓與氣壓傳動(dòng)項(xiàng)目教程(侯守軍)
- 2024年亳州職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)
- 2025年旅行與旅游的未來:擁抱可持續(xù)與包容性增長(zhǎng)報(bào)告(英文版)-世界經(jīng)濟(jì)論壇
- DB65T 8022-2024 嚴(yán)寒和寒冷地區(qū)居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)
- 《質(zhì)子治療技術(shù)》課件
- 醫(yī)院影像科服務(wù)質(zhì)量提升措施
- 2024年中國(guó)疾控中心信息中心招聘筆試真題
評(píng)論
0/150
提交評(píng)論