版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Hibernate課JDBC強(qiáng)。靈活性比較強(qiáng),可以寫(xiě)很復(fù)雜的SQL語(yǔ)句。JDBC因?yàn)镴AVA是面象的,JDBC沒(méi)有做到使數(shù)據(jù)能夠面象的編程,使程序員的思考仍停留在SQL語(yǔ)句上。操作比較繁瑣,很多代碼需要重復(fù)寫(xiě)很多次如果遇到批量操作,頻繁與數(shù)據(jù)庫(kù)進(jìn)行交互,容易造成效率的下降JDBC的程序操作可以封裝一些什么內(nèi)容?又不可以封裝哪些內(nèi)容Hibernate實(shí)現(xiàn)了面象的數(shù)據(jù)庫(kù)編Hibernate比起JDBC來(lái),在代碼的書(shū)寫(xiě)上比較簡(jiǎn)單化了Hibernate提出了緩存機(jī)制,這樣可以使數(shù)據(jù)的效率提高很大第一個(gè)Hibernate例子包括的內(nèi)容項(xiàng)目所需要的LIB配置文件持久化 文 結(jié)論:通過(guò)這個(gè)例子可以看到利用面象的技術(shù)也可以操作數(shù)據(jù)庫(kù)。Hibernate就是一個(gè)面象操作數(shù)據(jù)庫(kù)的框JDBC開(kāi)發(fā)的。配置文件Hibernate.connection.url表示要的數(shù)據(jù)庫(kù)地址 mysql數(shù)據(jù) oracle數(shù)據(jù) SQLServer數(shù)據(jù)validate:加載hibernate時(shí)驗(yàn)證創(chuàng)建表結(jié)update:加載hibernate時(shí)自動(dòng)更新數(shù)據(jù)庫(kù)結(jié)構(gòu),如果表存在不用創(chuàng)建,如果不create:每一次加載hibernate時(shí)都創(chuàng)建表結(jié)create-drop:加載hibernate時(shí)創(chuàng)建,退出時(shí)刪持久化類(lèi)文件客戶(hù)端查詢(xún)例子刪除例子更新例子保存例子Cnfiguration類(lèi)負(fù)責(zé)管理Hibernate的配置信息。包括如下內(nèi)容Hibernate運(yùn)行的底層信息:數(shù)據(jù)庫(kù)的URL、用戶(hù)名、、JDBC驅(qū)動(dòng)類(lèi),數(shù)據(jù)庫(kù)Dialect,數(shù)據(jù)庫(kù)連接池等(對(duì)應(yīng)hibernate.cfg.xml文件)持久化類(lèi)與數(shù)據(jù)表的關(guān)系(*.hbm.xml文件創(chuàng)建Configuration的兩種方屬性文件Configurationcfg=newXml文件Configurationcfg=new第二種創(chuàng)建方式較為常見(jiàn)。Hibernate.cfg.xml文件默認(rèn) 為系統(tǒng)的 (展示源代碼以得到證實(shí)也可以利用config.config方法來(lái)指定配置文件所在 Configuration對(duì)象根據(jù)當(dāng)前的配置信息生成SessionFactory對(duì)象。SessionFactory對(duì)象一旦構(gòu)造完畢,即被賦予特定的配置信息(SessionFactory對(duì)象中保存了當(dāng)前的數(shù)據(jù)庫(kù)配置信息和所有關(guān)系以及預(yù)定義的SQL語(yǔ)句。同時(shí),SessionFactory還負(fù)責(zé)Hibernate的二級(jí)緩存)。Configurationcfg=newSessionFactorysf=是線程安全的SessionFactory是生成Session的工廠Sessionsession=構(gòu)造SessionFactory很消耗資源,一般情況下一個(gè)應(yīng)用中只初始化一SessionFactory對(duì)象在Hibernate中,Transactiontx=session.beginTransaction()相當(dāng)于給數(shù)據(jù)庫(kù) Hibernate的整個(gè)運(yùn)行過(guò)程如下1、應(yīng)用程序先調(diào)用Configuration類(lèi),該類(lèi)Hibernate配置文件及文件2、并用這些信息生成一個(gè)SessionFactory對(duì)象3、然后從SessionFactory對(duì)象生成一個(gè)Session對(duì)象4、并用Session對(duì)象生成Transaction對(duì)象A、可通過(guò)Session對(duì)象的get(),load(),save(),update(),delete()和saveOrUpdate()等方法對(duì)PO進(jìn)行加載、保存、更新、刪除、等操作;B、在查詢(xún)的情況下,可通過(guò)Session對(duì)象生成一個(gè)Query對(duì)象,然后利用ORM框 開(kāi)源的持久層框架ORM(Object/RelationalMap )工具,建立面象的域模型和關(guān)系數(shù)據(jù)模型之間的.連接java應(yīng)用和數(shù)據(jù)庫(kù)的中間件對(duì)JDBC進(jìn)行封裝,負(fù)責(zé)java對(duì)象的持久化Hibernate的優(yōu)點(diǎn)1、Hibernate對(duì)JDBC數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化2、Hibernate是一個(gè)基于jdbc的主流持久化框架,是一個(gè)優(yōu)的orm實(shí)現(xiàn),它很大程度的簡(jiǎn)化了dao層編碼工作3、Hibernate使用java的反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序類(lèi)實(shí)透明4、Hibernate的性能非常好,因?yàn)樗且粋€(gè)輕量級(jí)框架。的5、Hibernate使數(shù)據(jù)庫(kù)的操作完全面象。而不是從前的面向關(guān)系進(jìn)行操作ORM應(yīng)用Hibernate意味著程序員將不直接操作SQL語(yǔ)句,也就是說(shuō)以前對(duì)SQL的直接操作現(xiàn)在要用面象實(shí)現(xiàn)。實(shí)際上ORM到JDBC是緊密相連的。于此帶來(lái)了一一對(duì)多、多對(duì)一的關(guān)系在面象中是怎么樣去實(shí)現(xiàn)面象是怎么樣由面象的操作到對(duì)SQL的操描描由hibernate自動(dòng)以遞增的方式生成表識(shí)符,每次增量為由底層數(shù)據(jù)庫(kù)生成表識(shí)符。條件是數(shù)據(jù)庫(kù)支持自動(dòng)增長(zhǎng)數(shù)據(jù)類(lèi)型Hibernate根據(jù)底層數(shù)據(jù)庫(kù)序列生成標(biāo)識(shí)符。條件是數(shù)據(jù)庫(kù)支持序列Hibernate采用128位的UUID算法來(lái)生成標(biāo)識(shí)符。該算如果主鍵用字符類(lèi)型,并且不代表任何含義適用于自然主鍵。由java程序負(fù)責(zé)生成標(biāo)識(shí)符。不能把setID()方法聲Private的。盡量避免使用自然主鍵increment標(biāo)識(shí)符increment標(biāo)識(shí)符由Hibernate以遞增的方式為主鍵賦Hibernate會(huì)先NEWS表中的主鍵的最大值,而接下來(lái)向NEWS表中記錄時(shí),就在max(id)的基礎(chǔ)上遞增,增量為1.(帶走+1)適用范圍由于increment生存標(biāo)識(shí)符機(jī)制不依賴(lài)于底層數(shù)據(jù)庫(kù)系統(tǒng)因此它適合適用于只有單個(gè)Hibernate應(yīng)用進(jìn)程同一個(gè)數(shù)據(jù)庫(kù)的場(chǎng)OID必須為longint或short類(lèi)型如果把OID定義為byte類(lèi)型在identity標(biāo)識(shí)符identity標(biāo)識(shí)符由底層數(shù)據(jù)庫(kù)來(lái)負(fù)責(zé)生成標(biāo)識(shí)符,它要求底層數(shù)據(jù)庫(kù)把主鍵定義為自動(dòng)增長(zhǎng)字段類(lèi)型(加1帶走)適用范圍由于identity生成標(biāo)識(shí)符的機(jī)制依賴(lài)于底層數(shù)據(jù)庫(kù)系統(tǒng)因此要求底層數(shù)據(jù)庫(kù)系統(tǒng)必須支持自動(dòng)增長(zhǎng)字段類(lèi)型.支持自動(dòng)增長(zhǎng)字段類(lèi)型的數(shù)據(jù)庫(kù)包括:DB2,Mysql,MSSQLServer,Sybase等OID必須為longint或short類(lèi)型如果把OID定義為byte類(lèi)型在sequence標(biāo)識(shí)符sequence標(biāo)識(shí)符利用底層數(shù)據(jù)庫(kù)提供的序列來(lái)生成標(biāo)識(shí)符Hibernate在持久化一個(gè)News對(duì)象時(shí)先從底層數(shù)據(jù)庫(kù)的news_seq序列中獲得一個(gè)唯一的標(biāo)識(shí)號(hào),再把它作為主鍵值適用范圍由于sequence生成標(biāo)識(shí)符的機(jī)制依賴(lài)于底層數(shù)據(jù)庫(kù)系統(tǒng)的序列因此,要求底層數(shù)據(jù)庫(kù)系統(tǒng)必須支持序列.支持序列的數(shù)據(jù)庫(kù)包括:DB2Oracle等OID必須為longint或short類(lèi)型如果把OID定義為byte類(lèi)型在native標(biāo)識(shí)符native標(biāo)識(shí)符依據(jù)底層數(shù)據(jù)庫(kù)對(duì)自動(dòng)生成標(biāo)識(shí)符的支持能力,來(lái)選擇使用identity,sequence或hilo標(biāo)識(shí)符.適用范圍由于native能根據(jù)底層數(shù)據(jù)庫(kù)系統(tǒng)的類(lèi)型自動(dòng)選擇合適的標(biāo)識(shí)符生成器,因此很適合于跨數(shù)據(jù)庫(kù)平臺(tái)開(kāi)發(fā)OID必須為longint或short類(lèi)型如果把OID定義為byte類(lèi)型在assigned標(biāo)識(shí)符適用范圍主鍵有一定的含義,需要根據(jù)業(yè)務(wù)產(chǎn)生的情況Uuid標(biāo)識(shí)符使用范圍主鍵是字符串,而且必須是唯Myeclipse開(kāi)發(fā)1 新建一個(gè)JavaProject工 利用hibernate自帶的工具自動(dòng)生成持久化類(lèi)和文件。5 建立客戶(hù)端進(jìn)行編HibernateSessionFactory利用ThreadLocal類(lèi)保證了Session的線程安全。具體內(nèi)容看代碼是怎么樣形成的持久化對(duì)象有3種狀態(tài):游離狀Session的特定方法能使對(duì)象從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀在使用主鍵的情況下,OID通常為不處于Session的緩存在數(shù)據(jù)庫(kù)中沒(méi)有對(duì)應(yīng)的記OID不為位于Session緩存持久化對(duì)象和數(shù)據(jù)庫(kù)中的相關(guān)記錄對(duì)Session在清理緩存時(shí)會(huì)根據(jù)持久化對(duì)象的屬性變化來(lái)同步更新數(shù)據(jù)在同一個(gè)Session實(shí)例的緩存中數(shù)據(jù)庫(kù)表中的每條記錄只對(duì)應(yīng)唯一的OID不為不再處于Session的緩存一般情況需下游離對(duì)象是由持久化對(duì)象轉(zhuǎn)變過(guò)來(lái)的因此在數(shù)據(jù)庫(kù)中Session使用以下方法可以使持久化對(duì)象轉(zhuǎn)變成游離對(duì)象hibernate程序代生命周狀tx=session.beginTransaction();Customerc=newCustomer);臨時(shí)狀Long處于生命處于持久c=期狀Customerc2處于游離c2=Sessionsave方法使一個(gè)臨時(shí)對(duì)象轉(zhuǎn)變?yōu)槌志没瘜?duì)Sessionsave方法完成以下操作News對(duì)象加入到Session緩存中使它進(jìn)入持久化狀選用文件指定的標(biāo)識(shí)符,為持久化對(duì)象分配唯一的OID.在使用主鍵的情況下,setId()方法為News對(duì)象設(shè)置OID使無(wú)效的.計(jì)劃執(zhí)行一條insert語(yǔ)句,把Customer對(duì)象當(dāng)前的屬性值組裝到insert語(yǔ)句Hibernate通過(guò)持久化對(duì)象的OID來(lái)維持它和數(shù)據(jù)庫(kù)相關(guān)記錄的對(duì)應(yīng)關(guān)系News對(duì)象處于持久化狀態(tài)時(shí)不允許程序隨意修改它的Sessionupdate()方法使一個(gè)游離對(duì)象轉(zhuǎn)變?yōu)槌志没瘜?duì)象并且計(jì)劃執(zhí)行一條update語(yǔ)句.該方法同時(shí)包含saveupdate方法,如果參數(shù)是臨時(shí)對(duì)象就用save方法,如果是游離對(duì)象就用update方法,如果是持久化對(duì)象就直接返回。如果參數(shù)是臨時(shí)對(duì)象就用save方如果是游離對(duì)象就用update方如果是持久化對(duì)象就直接返回,不執(zhí)行操6.一對(duì)多關(guān)聯(lián)關(guān)僅僅建立從Order到Customer的多對(duì)一關(guān)聯(lián),即僅僅在Order類(lèi)中定義customer屬性?;蛘邇H僅建立從CustomerOrder的一對(duì)多關(guān)聯(lián),即僅僅Customer類(lèi)中定義orders集合。單向n-1關(guān)聯(lián)只需從n的一端可以1的一域模型OrderCustomer的多對(duì)一單向關(guān)聯(lián)需要在Order類(lèi)中定義一Customer屬性Customer類(lèi)中無(wú)需定義存放Order對(duì)象的集合屬關(guān)系數(shù)據(jù)模型:ORDERS表中的CUSTOMER_ID參照CUSTOMER表的主Hibernate使用<many-to-one>元素來(lái)多對(duì)一關(guān)聯(lián)關(guān)實(shí)驗(yàn)1先保存訂單,再保存客從這里可以看出執(zhí)行了兩條insert語(yǔ)句,一條update語(yǔ)句可以看出這種情況程序是執(zhí)行了兩條insert語(yǔ)句,而沒(méi)有執(zhí)行update語(yǔ)句。先保存客戶(hù),再保存訂單,在下面的代碼中注釋掉session.save(c),會(huì)有什么果級(jí)存和更hibernate持久化一個(gè)臨時(shí)對(duì)象時(shí),在默認(rèn)情況下,他不會(huì)自動(dòng)持久化所關(guān)聯(lián)的其他臨時(shí)對(duì)象,會(huì)拋出TransientObjectException.如果設(shè)定many-to-one元素的cascade屬性為save-update的話,可實(shí)現(xiàn)自動(dòng)持久化所關(guān)聯(lián)的對(duì)象。雙向1-n向n-1是完全相同的兩種情雙向1-n需要在1的一端可以n的一端,反之依然域模型OrderCustomer的多對(duì)一單向關(guān)聯(lián)需要在Order類(lèi)中定義一Customer屬性Customer類(lèi)中需定義存放Order對(duì)象的集合屬ORDERS表中的CUSTOMER_IDCUSTOMER表的主Hibernate使用set元素來(lái)一對(duì)多關(guān)聯(lián)關(guān)在下面的代碼中注釋掉session.save(order1),會(huì)有什級(jí)存和更hibernate持久化一個(gè)臨時(shí)對(duì)象時(shí),在默認(rèn)情況下,他不會(huì)自動(dòng)持久化所關(guān)聯(lián)的其他臨時(shí)對(duì)象,會(huì)拋出TransientObjectException.如果設(shè)定set元素的cascade屬性為save-update的話,可實(shí)現(xiàn)自動(dòng)持久化所關(guān)聯(lián)的對(duì)象。保存訂單時(shí)會(huì)發(fā)出兩條insertHibernate:selectmax(id)fromHibernate:insertintocustomers(name,id)values(?,Hibernate:insertintoorders(order_number,price,customer_id)values(?,?,?)Hibernate:selectmax(id)fromHibernate:insertintocustomers(name,id)values(?,?)Hibernate:insertintoorders(order_number,price,customer_id)values(?,?,?)Hibernate:updateorderssetcustomer_id=?where上述例子產(chǎn)生了兩條update語(yǔ)句Hibernate:updateorderssetorder_number=?,price=?,customer_id=?whereid=?Hibernate:updateorderssetcustomer_id=?where庫(kù),因此執(zhí)行了上述的兩條更新語(yǔ)句所以會(huì)產(chǎn)生兩條update語(yǔ)句Inverse來(lái)源在hibernate中通過(guò)對(duì)inverse屬性的值決定是由雙向關(guān)聯(lián)的哪一方來(lái)表和表之間的關(guān)系.inverse=false的為主動(dòng)方,inverse=true的為方,由主動(dòng)方Inverse設(shè)在沒(méi)有設(shè)置inverse=true的情況下,父子兩邊都父子關(guān)Inverse設(shè)值原1-n關(guān)系中,將n方設(shè)為主控方將有助于性能改善(如果要國(guó)家元首記住1-N關(guān)系中,若將1方設(shè)為主控方額外多出update語(yǔ)在一的一方設(shè)值inverse為T(mén)RUE表明一的一方不其關(guān)系,這樣就會(huì)發(fā)出一update語(yǔ)句,這樣效率也就提高了Inverse結(jié)在一對(duì)多的雙向關(guān)聯(lián)關(guān)系時(shí),應(yīng)該在one方把inverse屬性設(shè)為true,在建立兩個(gè)對(duì)象的關(guān)聯(lián)時(shí),應(yīng)該同時(shí)修改關(guān)聯(lián)兩端的相應(yīng)屬性不受Hibernate實(shí)現(xiàn)類(lèi)的影響。同理,當(dāng)刪除雙向關(guān)聯(lián)的關(guān)系時(shí),也應(yīng)該修改解除某個(gè)訂單與某個(gè)客戶(hù)的關(guān)這樣在order表中,ID為6的相應(yīng)的外鍵為3的那行的外鍵會(huì)置為cascade<set>元素有一個(gè)order-by屬性如果設(shè)置了該屬性當(dāng)Hibernate通過(guò)select語(yǔ)句到數(shù)據(jù)庫(kù)中檢索集合對(duì)象時(shí),利用orderby子句進(jìn)行排序7.多對(duì)多關(guān)聯(lián)關(guān)sessionSession接口是Hibernate向應(yīng)用程序提供的對(duì)數(shù)據(jù)庫(kù)的最主要的接口,它提供了基本的保存,更新,刪除和加載Java對(duì)象的方法.session在Session接口的實(shí)現(xiàn)中包含一系列的Java集合,這些Java集合構(gòu)成了Session緩存Session實(shí)例沒(méi)有結(jié)束生命周期存放在它緩存中的對(duì)象也 sessionsave()方法持久化一個(gè)對(duì)象時(shí),該對(duì)象被載入緩存,以后即使程序中不再該對(duì)象,只要緩存不清空,該對(duì)象仍然處于生命周期中。當(dāng)試load()對(duì)象時(shí),會(huì)判斷緩存中是否存在該對(duì)象,有則返回。沒(méi)有在查詢(xún)數(shù)據(jù)sessionSession具有一個(gè)緩存位于緩存中的對(duì)象稱(chēng)為持久化對(duì)象它和數(shù)據(jù)庫(kù)中的相關(guān)記錄對(duì)應(yīng)Session能夠在某些時(shí)間點(diǎn)按照緩存中對(duì)象的變化來(lái)執(zhí)行相關(guān)的SQL語(yǔ)句,來(lái)同步更新數(shù)據(jù)庫(kù),這一過(guò)程被稱(chēng)為清理緩存(flush)默認(rèn)情況下Session在以下時(shí)間點(diǎn)清理緩存當(dāng)應(yīng)用程序調(diào)用Transaction的commit()方法的時(shí),該方法先清理 顯式調(diào)用Sessionflush()方法區(qū)別flush:進(jìn)行清理緩存(此時(shí)緩存中的數(shù)據(jù)并不丟失)的操作,讓緩存和數(shù)據(jù)庫(kù)同步行一些列sql語(yǔ)句,但不提交事務(wù),;commit:先調(diào)用flush()方法,然后提交事務(wù)則意味著提交事務(wù)意味著對(duì)數(shù)據(jù)庫(kù)操reresh:刷新,讓session和數(shù)據(jù)庫(kù)同步,執(zhí)行查詢(xún),把數(shù)據(jù)庫(kù)的信息顯示出來(lái),更c(diǎn)lear:清空緩存,等價(jià)于利用Session緩存持久化對(duì)象的數(shù)Customerc=newCustomer(“TOM”,newsession.save(c);//customer對(duì)象被持久化,并且加入到session的緩存Longid=c=null;//c變量不再customer對(duì)//從session緩存中customer對(duì)象,使c2變量customer對(duì)Customerc2=(Customer)session.load(Customer.clamit();//緩存中的對(duì)象和數(shù)據(jù)庫(kù)同session.close();session清空緩System.out.println(c2.getName());//customer對(duì)C2=null;//C2對(duì)象不再customer對(duì)象,customer對(duì)象結(jié)束生命周緩存的作用1。減少數(shù)據(jù)庫(kù)的頻率2。保證緩存中的對(duì)象與數(shù)據(jù)庫(kù)中的相關(guān)記錄保持同步Session可以寫(xiě)一個(gè)for循環(huán),Session可以批量上萬(wàn)條數(shù)據(jù)。如下面的代碼For(inti=0;i<10000;i++){}做加大了內(nèi)存的壓力。所以應(yīng)該定期清理session的緩存,也就是flush一下,這樣內(nèi)場(chǎng)合二:當(dāng)用戶(hù)要取數(shù)據(jù)庫(kù)的一張表的一個(gè)字段的值,而這個(gè)值很可能是blob類(lèi)兩種場(chǎng)合的取數(shù)據(jù)的方法一樣嗎?是用load還是用get方法lazytrue或者為 extra為更進(jìn)一步的延遲加載策略當(dāng)調(diào)用getStudents()時(shí)不會(huì)加載hql語(yǔ)句,當(dāng)加載student的屬性的時(shí)候才會(huì)發(fā)出SQL語(yǔ)句調(diào)用getStudents().size()方法的時(shí)候,會(huì)觸發(fā)類(lèi)似于:Hibernate:selectcount(id)fromT_Studentwherecla =?這樣的SQL查詢(xún)語(yǔ)句(這是一種很聰明的做法,如果lazy=”true”,getStudents().size()將會(huì)使得hibernate加載所有集合的調(diào)用getStudents().contains()方法的時(shí)候(即判斷是否包含某個(gè)對(duì)象),會(huì)觸發(fā)類(lèi)似于:select1fromT_Studentwherecla =?andid=?這樣的SQL查詢(xún)語(yǔ) no-proxy:當(dāng)前對(duì)象的単值相關(guān)對(duì)象只有在調(diào)用它的主鍵外的其他屬性的get方法時(shí)默認(rèn)的檢索策略是立即檢索。在Hibernate文件中,通過(guò)在<class>上配置lazy屬性來(lái)確定檢索策略。對(duì)于Session的檢索方式,類(lèi)級(jí)別檢索策略?xún)H適用于load方法;也就說(shuō),對(duì)于get、qurey檢索,持久化對(duì)象都會(huì)被立即加載而不管lazy是false還是true.一般來(lái)說(shuō),檢索對(duì)象就是要它,因此立即檢索是通常的選擇。由于load方法在檢索不到對(duì)象時(shí)會(huì)拋出異常(立即檢索的情況下),因此我個(gè)人并不建議使用load檢索;而由于<class>中的lazy屬性還影響到多對(duì)一及一對(duì)一的檢索策略,因此使用load方法就更沒(méi)必要了。(默認(rèn)值是策采用迫切左外聯(lián)接檢索采用迫切左外聯(lián)接檢索采用迫切左外聯(lián)接檢索采用立即檢采用延遲檢采用延遲檢c.getOrders().size()執(zhí)行selectcount(id)fromorderswherecustomer_id=?for(Ordero:set){o.getOrderNumber();}將selectcustomer_idid,order_number,pricefromorderswhere也分為3中情嵌套子查詢(xún)(檢索多個(gè)customer對(duì)象時(shí)Lazy屬selectcustomer_id,order_number,pricefromorders
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024硬件設(shè)備代理與售后服務(wù)合作協(xié)議2篇
- 2025年度GPS技術(shù)在應(yīng)急救援領(lǐng)域的應(yīng)用合作協(xié)議3篇
- 二零二四年商務(wù)考察接送服務(wù)合同模板3篇
- 2024食用菌品牌授權(quán)與營(yíng)銷(xiāo)推廣合同3篇
- 2025年校園安保服務(wù)合同含校園安全設(shè)施建設(shè)及維護(hù)協(xié)議3篇
- 2025年消防應(yīng)急照明及疏散指示系統(tǒng)采購(gòu)合同范本2篇
- 二零二五年度海鮮餐廳特許經(jīng)營(yíng)許可合同3篇
- 二零二五版煤礦掘進(jìn)設(shè)備出租及維護(hù)保養(yǎng)服務(wù)合同3篇
- 二零二五版廠房租賃合同終止及費(fèi)用結(jié)算及保險(xiǎn)服務(wù)協(xié)議3篇
- 二零二五年建筑施工人員雇傭合同3篇
- 直播帶貨助農(nóng)現(xiàn)狀及發(fā)展對(duì)策研究-以抖音直播為例(開(kāi)題)
- 腰椎間盤(pán)突出疑難病例討論
- 《光伏發(fā)電工程工程量清單計(jì)價(jià)規(guī)范》
- 2023-2024學(xué)年度人教版四年級(jí)語(yǔ)文上冊(cè)寒假作業(yè)
- (完整版)保證藥品信息來(lái)源合法、真實(shí)、安全的管理措施、情況說(shuō)明及相關(guān)證明
- 營(yíng)銷(xiāo)專(zhuān)員績(jī)效考核指標(biāo)
- 陜西麟游風(fēng)電吊裝方案專(zhuān)家論證版
- 供應(yīng)商審核培訓(xùn)教程
- 【盒馬鮮生生鮮類(lèi)產(chǎn)品配送服務(wù)問(wèn)題及優(yōu)化建議分析10000字(論文)】
- 肝硬化心衰患者的護(hù)理查房課件
- 2023年四川省樂(lè)山市中考數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論