版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Hibernate高級(jí)應(yīng)用( 視頻講解:107分鐘)目前,持久層框架并非只有Hibernate,但在眾多持久層框架中,Hibernate憑借著其強(qiáng)大的功能、輕量級(jí)的實(shí)現(xiàn)、成熟的結(jié)構(gòu)體系等諸多優(yōu)點(diǎn)從中脫穎而出,在Java編程中得到了廣泛的應(yīng)用。本章將在第14章的基礎(chǔ)上,對(duì)其進(jìn)行更加深入的講解。通過閱讀本章,您可以::掌握實(shí)體對(duì)象關(guān)系的建立:掌握關(guān)聯(lián)關(guān)系的映射方法:理解單向關(guān)聯(lián)與雙向關(guān)聯(lián):掌握對(duì)象間的級(jí)聯(lián)操作:掌握繼承映射:掌握HQL查詢語言15.1關(guān)聯(lián)關(guān)系映射視頻講解:光盤\TM\Video\15\關(guān)聯(lián)關(guān)系映射.exeHibernate框架是一個(gè)ORM框架,它以面向?qū)ο蟮木幊谭绞讲僮鲾?shù)據(jù)庫。在Hibernate中,“映射”發(fā)揮著巨大的作用,它將實(shí)體對(duì)象映射成數(shù)據(jù)表,實(shí)體對(duì)象的屬性被映射為表中的字段,同樣其實(shí)體之間的關(guān)聯(lián)關(guān)系也是通過“映射”實(shí)現(xiàn)的。15.1.1單向關(guān)聯(lián)與雙向關(guān)聯(lián)在Hibernate框架中,實(shí)體對(duì)象之間的關(guān)系可分為一對(duì)一、多對(duì)一等關(guān)聯(lián)關(guān)系,其關(guān)聯(lián)類型主要分為“單向關(guān)聯(lián)”與“雙向關(guān)聯(lián)”。(1) 單向關(guān)聯(lián)單向關(guān)聯(lián)指具有關(guān)聯(lián)關(guān)系的實(shí)體對(duì)象之間的加載關(guān)系是單向的。它意味著,在具有關(guān)聯(lián)關(guān)系的兩個(gè)實(shí)體對(duì)象中,只有一個(gè)實(shí)體對(duì)象可以訪問對(duì)方。如圖15.1所示,從學(xué)生對(duì)象中可以加載到班級(jí)信息,反過來則不行。(2) 雙向關(guān)聯(lián)
雙向關(guān)聯(lián)指具有關(guān)聯(lián)關(guān)系的實(shí)體對(duì)象之間的加載關(guān)系是雙向的。它意味著,在具有關(guān)聯(lián)關(guān)系的兩個(gè)實(shí)體對(duì)象中,彼此都可以訪問對(duì)方。如圖15.2所示,從學(xué)生對(duì)象中可以加載到班級(jí)信息,從班級(jí)對(duì)象中也可加載到學(xué)生的信息。,學(xué)生 A現(xiàn)霸圖15.1單向關(guān)聯(lián)學(xué)生.■現(xiàn)取圖15.2雙向關(guān)聯(lián)15.1.2多對(duì)一單向關(guān)聯(lián)映射多對(duì)一單向關(guān)聯(lián)映射十分常見,在學(xué)習(xí)其映射方法之前,首先來了解一下多對(duì)一單向關(guān)聯(lián)的實(shí)體。如圖15.3所示,圖書對(duì)象(Book)與圖書類別對(duì)象(Category)為多對(duì)一的關(guān)聯(lián)關(guān)系,多本圖書對(duì)應(yīng)一個(gè)類別,在Book對(duì)象中擁有Category的引用,它可以加載到一本圖書的所屬類別,而在Category的一端卻不能加載到圖書信息。對(duì)于多對(duì)一單向關(guān)聯(lián)映射,Hibernate會(huì)在多的一端加入外鍵與一的一端建立關(guān)聯(lián)關(guān)系,其映射后的數(shù)據(jù)表如圖15.4所示。圖15.3多對(duì)一單向關(guān)聯(lián)的實(shí)體對(duì)象圖15.4映射后的數(shù)據(jù)表例15.01建立圖書對(duì)象(Book)與圖書類別對(duì)象(Category)的多對(duì)一關(guān)聯(lián)關(guān)系,通過單向關(guān)聯(lián)進(jìn)行映射。其關(guān)鍵的映射代碼如下:(實(shí)例位置:光盤\TM\Instances\15.01)<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
"/hibernate-mapping-3.0.dtd"><hibernate-mappingpackage="com.lyq.model"><classname="Book"table="tb_book_manytoone1"><!--主鍵--><idname="id"><generatorclass="native"/></id><!--圖書名稱--><propertyname="name"not-null="true"length="200"/><!--作者--><propertyname="author"not-null="true"length="50"/><!--多對(duì)一關(guān)聯(lián)映射--><many-to-onename="category"class="Category"><!--映射的字段--><columnname="categoryId"/></many-to-one></class></hibernate-mapping>Hibernate的多對(duì)一單向關(guān)聯(lián)是使用<many-to-one>標(biāo)簽進(jìn)行映射,此標(biāo)簽用在多的一端。其中,name屬性用于指定持久化類中相對(duì)應(yīng)的屬性名,class屬性指定與其關(guān)聯(lián)的對(duì)象。此外還需要指定數(shù)據(jù)表中所映射的字段,它使用子標(biāo)簽<column>進(jìn)行設(shè)置,〈column>標(biāo)簽的name屬性用于一的一端的主鍵標(biāo)識(shí)。創(chuàng)建ExportTables類,在main()方法中將數(shù)據(jù)表導(dǎo)出。其關(guān)鍵代碼如下:publicstaticvoidmain(String[]args){//加載配置信息Configurationcfg=newConfiguration().configure();〃實(shí)例化SchemaExport對(duì)象SchemaExportexport=newSchemaExport(cfg);
〃導(dǎo)出數(shù)據(jù)表export.create(true,true);}運(yùn)行此類,將在數(shù)據(jù)庫中創(chuàng)建圖書信息表與圖書類別表。例15.02多對(duì)一單向關(guān)聯(lián)映射中對(duì)象的加載,代碼如下。(實(shí)例位置:光盤\TM\Instances\15.02)publicclassTest{publicstaticvoidmain(String[]args){Sessionsession=null; //聲明Session對(duì)象try{〃獲取Sessionsession=HibernateUtil.getSession();〃開啟事務(wù)session.beginTransaction();〃查詢圖書對(duì)象Bookbook=(Book)session.get(Book.class,newInteger(1));System.out.println("圖書名稱:"+book.getName());System.out.println("圖書類別:"+book.getCategory().getName());//提交事務(wù)session.getTransaction().commit();}catch(Exceptione){e.printStackTrace();〃出錯(cuò)將回滾事務(wù)session.getTransaction().rollback();}finally{//關(guān)閉Session對(duì)象HibernateUtil.closeSession(session);本實(shí)例中,Book對(duì)象持有Category對(duì)象的引用,從Book對(duì)象中可以得到Category對(duì)象的屬性,實(shí)例運(yùn)行結(jié)果如圖15.5所示。圖15.5圖15.5實(shí)例運(yùn)行結(jié)果15.1.3多對(duì)一雙向關(guān)聯(lián)映射雙向關(guān)聯(lián)的實(shí)體對(duì)象都持有對(duì)方的引用,在任何一端都能加載到對(duì)方的信息。多對(duì)一雙向關(guān)聯(lián)映射實(shí)質(zhì)是在多對(duì)一單向關(guān)聯(lián)的基礎(chǔ)上,加入了一對(duì)多關(guān)聯(lián)關(guān)系。下面仍以圖書對(duì)象(Book)與圖書類別對(duì)象(Category)為例,講解多對(duì)一雙向關(guān)聯(lián)映射,其實(shí)體關(guān)系如圖15.6所示。Eool-id. : intnaEe : Strinrauthor : String-ca.t : Catecor:圖15.6多對(duì)一雙向關(guān)聯(lián)的實(shí)體對(duì)象對(duì)于圖書類別對(duì)象Category,它擁有多個(gè)圖書對(duì)象的引用,因此需要在Category對(duì)象中加入Set屬性的圖書集合books,對(duì)于其映射文件也通過集合的方式進(jìn)行映射。例15.03建立圖書對(duì)象(Book)與圖書類別對(duì)象(Category)的多對(duì)一關(guān)聯(lián)關(guān)系,通過雙向關(guān)聯(lián)進(jìn)行映射,其中Book對(duì)象的映射文件與多對(duì)一單向關(guān)聯(lián)中一致,并沒有發(fā)生任何變化,而Category對(duì)象的映射文件通過<set>標(biāo)簽進(jìn)行映射。代碼如下:(實(shí)例位置:光盤\TM\Instances\15.03)<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"<hibernate-mappingpackage="com.lyq.model"><classname="Category"table="tb_Category_manytoone2"><!--主鍵--><idname="id"><generatorclass="native"/></id><!--類別名稱--><propertyname="name"not-null="true"length="200"/><!--—對(duì)多映射--><setname="books"><keycolumn="categoryId"/><one-to-manyclass="Book"/></set></class></hibernate-mapping><set>標(biāo)簽用于映射集合類型的屬性,其中name屬性用于指定持久化類中的屬性名稱。此標(biāo)簽通過子標(biāo)簽<key>指定數(shù)據(jù)表中的關(guān)聯(lián)字段,對(duì)于一對(duì)多關(guān)聯(lián)映射通過<one-to-many>標(biāo)簽進(jìn)行映射,其class屬性用于指定相關(guān)聯(lián)的對(duì)象。創(chuàng)建ExportTables類,在main()方法中將數(shù)據(jù)表導(dǎo)出。其關(guān)鍵代碼如下:publicstaticvoidmain(String[]args){//加載配置信息Configurationcfg=newConfiguration().configure();〃實(shí)例化SchemaExport對(duì)象SchemaExportexport=newSchemaExport(cfg);〃導(dǎo)出數(shù)據(jù)表export.create(true,true);}運(yùn)行此類,將在數(shù)據(jù)庫中創(chuàng)建圖書信息表與圖書類別表。
例15.04多對(duì)一雙向關(guān)聯(lián)映射中對(duì)象的加載,代碼如下:(實(shí)例位置:光盤\TM\Instances\15.04)publicclassTest{publicstaticvoidmain(String[]args){Sessionsession=null; //聲明Session對(duì)象try{〃獲取Sessionsession=HibernateUtil.getSession();〃開啟事務(wù)session.beginTransaction();System.out.println("*********查詢圖書對(duì)象************");〃查詢圖書對(duì)象Bookbook1=(Book)session.get(Book.class,newInteger(1));System.out.println("圖書名稱:"+book1.getName());System.out.println("圖書類別:"+book1.getCategory().getName());System.out.println("*********查詢類別對(duì)象************");〃查詢類別對(duì)象Categoryc=(Category)session.load(Category.class,newInteger⑴);System.out.println("類別名稱:"+c.getName());Set<Book>books=c.getBooks(); 〃獲取類別中的所有圖書//通過迭代輸出圖書名稱for(Iterator<Book>it=books.iterator();it.hasNext();){Bookbook2=(Book)it.next();System.out.println("圖書名稱:"+book2.getName());}//提交事務(wù)session.getTransaction().commit();
}catch(Exceptione){e.printStackTrace();〃出錯(cuò)將回滾事務(wù)session.getTransaction().rollback();}finally{//關(guān)閉Session對(duì)象HibernateUtil.closeSession(session);}}}由于配置了圖書與類別之間的多對(duì)一雙向關(guān)聯(lián)映射,所以Book對(duì)象與Category對(duì)象都持有對(duì)方的引用。圖書類別屬于多對(duì)一中一的一端,在一個(gè)類別中擁有多本圖書,Hibernate使用Set集合進(jìn)行映射,因此當(dāng)加載一個(gè)類別時(shí),可以加載到類別中的所有圖書。實(shí)例運(yùn)行結(jié)果如圖15.7所示。圖15.7實(shí)例運(yùn)行結(jié)果15.1.4一對(duì)一主鍵關(guān)聯(lián)映射用戶與身份證之間是一對(duì)一的關(guān)聯(lián)關(guān)系,每一個(gè)用戶對(duì)應(yīng)一個(gè)身份證,同樣每一個(gè)身份證也對(duì)應(yīng)一個(gè)用戶。在Hibernate中,可將一對(duì)一關(guān)聯(lián)映射分為主鍵關(guān)聯(lián)映射與外鍵關(guān)聯(lián)映射。使用一對(duì)一主鍵關(guān)聯(lián)映射時(shí),其數(shù)據(jù)表的結(jié)構(gòu)如圖15.8所示。從圖15.8可以看出,IdCard的主鍵參照了User的外鍵,它與User對(duì)象的主鍵是一一對(duì)應(yīng)的關(guān)系。同樣,Hibernate的一對(duì)一主鍵關(guān)聯(lián)映射也分為單向與雙向映射。下面以雙向映射為例進(jìn)行講解,其實(shí)體間的關(guān)系如圖15.9所示。
numvdrcharlSO)typfvarchsrOO)圖15.8表關(guān)系numvdrcharlSO)typfvarchsrOO)圖15.8表關(guān)系圖15.9實(shí)體關(guān)系例15.05用戶(User)對(duì)象與證件(IdCard)對(duì)象為一對(duì)一的關(guān)聯(lián)關(guān)系,二者之間通過一對(duì)一主鍵關(guān)聯(lián)映射。其中User的映射文件User.hbm.xml的關(guān)鍵代碼如下:(實(shí)例位置:光盤\TM\Instances\15.05)<hibernate-mapping><classname="com.lyq.model.User"table="tb_user_onetoone_p"><!--主鍵id--><idname="id"><generatorclass="native"/></id><!--姓名--><propertyname="username"not-null="true"/><!--年齡--><propertyname="age"/><!--—對(duì)一映射--><one-to-onename="idCard"/></class></hibernate-mapping>IdCard對(duì)象的主鍵參照了User對(duì)象的外鍵,其映射文件IdCard.hbm.xml的關(guān)鍵代碼如下。<hibernate-mapping><classname="com.lyq.model.IdCard"table="tb_idCard_onetoone_p">
<idname="id"><!--參考User的外鍵--><generatorclass="foreign"><paramname="property">user</param></generator></id><!--證件號(hào)--><propertyname="num"not-null="true"/><!--—對(duì)一映射--><one-to-onename="user"constrained="true"/></class></hibernate-mapping><one-to-one>標(biāo)簽用于建立一對(duì)一關(guān)聯(lián)映射,其中name屬性用于指定持久化類中的屬性名稱;constrained屬性用于建立一個(gè)約束,它表明IdCard對(duì)象的主鍵參照了User的外鍵。IdCard的主鍵生成策略為foreign,此種方式通過<parm>標(biāo)簽配置主鍵的來源。創(chuàng)建ExportTables類,在main()方法中將數(shù)據(jù)表導(dǎo)出。其關(guān)鍵代碼如下:publicstaticvoidmain(String[]args){//加載配置信息Configurationcfg=newConfiguration().configure();〃實(shí)例化SchemaExport對(duì)象SchemaExportexport=newSchemaExport(cfg);〃導(dǎo)出數(shù)據(jù)表export.create(true,true);}運(yùn)行此類,將在數(shù)據(jù)庫中創(chuàng)建用戶表與證件表。
15.1.5一對(duì)一外鍵關(guān)聯(lián)映射除一對(duì)一主鍵關(guān)聯(lián)映射外,還有一對(duì)一外鍵關(guān)聯(lián)映射。這種映射方式在其中一端加入一個(gè)外鍵指向另一端,其映射后形成的數(shù)據(jù)表如圖15.10所示。U=?l-IXaixlM irri.t■?jiiclurIrrtixKsidirrlMint 淮Ttniflyav:hu*圖15.10表關(guān)系從圖15.10中可以看出,這種映射方式與多對(duì)一映射方式相似,如果能限制User對(duì)象中IdCard的唯一性,那么二者之間實(shí)質(zhì)上就構(gòu)成了一對(duì)一關(guān)聯(lián)關(guān)系。例15.06用戶(User)對(duì)象與證件(IdCard)對(duì)象為一對(duì)一的關(guān)聯(lián)關(guān)系,在二者之間建立一對(duì)一外鍵關(guān)聯(lián)映射。其中IdCard的映射文件IdCard.hbm.xml的關(guān)鍵代碼如下:(實(shí)例位置:光盤\TM\Instances\15.06)<hibernate-mapping><classname="com.lyq.model.IdCard"table="tb_idCard_onetoone_f"><!--主鍵id--><idname="id"><generatorclass="native"/></id><!--證件號(hào)--><propertyname="num"not-null="true"/></class></hibernate-mapping>User對(duì)象的映射文件User.hbm.xml的關(guān)鍵代碼如下:<hibernate-mapping><classname="com.lyq.model.User"table="tb_user_onetoone_f"><!--主鍵id--><idname="id"><generatorclass="native"/></id>
<propertyname="username"not-null="true"/><!--年齡--><propertyname="age"/><!--—對(duì)一映射--><many-to-onename="idCard"unique="true"/></class></hibernate-mapping>在IdCard對(duì)象的映射文件中,并沒有發(fā)生太大的變化,它只不過進(jìn)行了普通的映射。而User對(duì)象的映射文件中,使用了<many-to-one>標(biāo)簽進(jìn)行了映射,此標(biāo)簽用于多對(duì)一映射,但其unique屬性可以限制其關(guān)聯(lián)的唯一性,從而構(gòu)成了一對(duì)一唯一外鍵關(guān)聯(lián)映射。創(chuàng)建ExportTables類,在main()方法中將數(shù)據(jù)表導(dǎo)出,運(yùn)行此類,將在數(shù)據(jù)庫中創(chuàng)建用戶表與證件表。15.1.6多對(duì)多關(guān)聯(lián)映射Hibernate的多對(duì)多關(guān)聯(lián)映射與多對(duì)一及一對(duì)一等映射方式不同,它需要借助于第三張表進(jìn)行實(shí)現(xiàn)。比如學(xué)生和課程之間是多對(duì)多的關(guān)系,一個(gè)學(xué)生可以選修多門課程,而一門課程又可以被多個(gè)學(xué)生選修。對(duì)于此種關(guān)系,Hibernate分別用兩個(gè)實(shí)體的標(biāo)識(shí)映射出第三張表,用此表來維護(hù)學(xué)生與課程之間的多對(duì)多關(guān)系,如圖15.11所示。圖15.11表關(guān)系由于對(duì)象之間存在的是多對(duì)多的關(guān)系,彼此都可以擁有對(duì)方的多個(gè)引用,因此在設(shè)計(jì)持久化類中加入Set集合。例15.07建立學(xué)生對(duì)象與課程對(duì)象雙向多對(duì)多關(guān)聯(lián)關(guān)系映射,其中學(xué)生的持久化類為Studento其關(guān)鍵代碼如下。(實(shí)例位置:光盤\TM\Instances\15.07)publicclassStudent{
privateIntegerid; //IDprivateStringname; //姓名privateIntegerage; //年齡privateSet<Course>course;〃課程集合//省略getXXX()與setXXX()方法}課程的持久化類為Course,其關(guān)鍵代碼如下:publicclassCourse{privateIntegerid; //IDprivateStringname; 〃課程名稱privateSet<Student>students; 〃學(xué)生集合//省略getXXX()與setXXX()方法}Student對(duì)象的映射文件為Student.hbm.xml,其關(guān)鍵代碼如下。<hibernate-mappingpackage="com.lyq.model"><classname="Student"table="tb_student_manytomany"><!--主鍵id--><idname="id"><generatorclass="native"/></id><!--姓名--><propertyname="name"not-null="true"/><!--年齡--><propertyname="age"/><setname="course"table="tb_student_course"><keycolumn="studentId"></key><many-to-manyclass="Course"column="courseId"/></set>
</class></hibernate-mapping>Course對(duì)象的映射文件為Course.hbm.xml,其關(guān)鍵代碼如下。<hibernate-mapping><classname="com.lyq.model.Course"table="tb_course_manytomany"><!--主鍵id--><idname="id"><generatorclass="native"/></id><!--姓名--><propertyname="name"not-null="true"/><!--多對(duì)多映射--><setname="students"table="tb_student_course"><keycolumn="courseId"/><many-to-manyclass="com.lyq.model.Student"column="studentId"/></set></class></hibernate-mapping>多對(duì)多關(guān)聯(lián)映射中,使用<set>標(biāo)簽進(jìn)行集合的映射,其table屬性用于指定所映射的第三張表,其子標(biāo)簽<key>指定第三張表所形成的字段,子標(biāo)簽<many-to-many>映射多對(duì)多的關(guān)聯(lián)關(guān)系。<many-to-many>標(biāo)簽的class屬性指定關(guān)聯(lián)的對(duì)象,column指定所關(guān)聯(lián)的字段。由于本實(shí)例中使用的是雙向多對(duì)多關(guān)聯(lián)關(guān)系映射,所以在課程對(duì)象Course與學(xué)生對(duì)象Student中都要通過<set>標(biāo)簽進(jìn)行映射。創(chuàng)建ExportTables類,在main()方法中將數(shù)據(jù)表導(dǎo)出,運(yùn)行此類,將在數(shù)據(jù)庫中創(chuàng)建3張表。15.1.7級(jí)聯(lián)操作在關(guān)聯(lián)中的使用
在數(shù)據(jù)庫操作中,級(jí)聯(lián)操作經(jīng)常被用到,如級(jí)聯(lián)更新、級(jí)聯(lián)刪除等操作。針對(duì)級(jí)聯(lián)操作,Hibernate提供了相應(yīng)的方法,它通過在映射文件中配置cascade屬性來實(shí)現(xiàn),其可選值有4種情況,如表15.1所示。表15.1cascade屬性的可選值及說明可選值說明none默認(rèn)值,不進(jìn)行級(jí)聯(lián)操作save-update當(dāng)保存或更新當(dāng)前對(duì)象時(shí),級(jí)聯(lián)保存或更新關(guān)聯(lián)對(duì)象delete當(dāng)刪除當(dāng)前對(duì)象時(shí),級(jí)聯(lián)刪除關(guān)聯(lián)對(duì)象all當(dāng)保存、更新或刪除當(dāng)前對(duì)象時(shí),級(jí)聯(lián)保存、更新或刪除關(guān)聯(lián)對(duì)象例15.08圖書對(duì)象B
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大型活動(dòng)炊事員臨時(shí)聘用合同4篇
- 二零二五年度碼頭船舶污染物接收站運(yùn)營管理合同3篇
- 2025年度出口貿(mào)易合同匯率風(fēng)險(xiǎn)管理與服務(wù)協(xié)議4篇
- 2025年度物業(yè)商鋪裝修設(shè)計(jì)與施工節(jié)能環(huán)保服務(wù)協(xié)議3篇
- 2025年度海洋資源開發(fā)項(xiàng)目出資轉(zhuǎn)讓協(xié)議書4篇
- 二零二五年度鋁合金家居用品定制加工合同3篇
- 《電力線路安規(guī)培訓(xùn)》課件
- 有限空間安全操作規(guī)程及施工技術(shù)措施規(guī)范
- 2025年度生物質(zhì)能發(fā)電站安裝工程承包合同范本
- 二零二五年度打印機(jī)設(shè)備租賃與品牌形象合作合同4篇
- 遼寧省葫蘆島市2024-2025學(xué)年高三上學(xué)期1月期末語文試題及參考答案
- 2025年1月浙江高考英語聽力試題真題完整版(含答案+文本+MP3)
- 《榜樣9》觀后感心得體會(huì)一
- 虛擬偶像市場(chǎng)分析-洞察分析
- 2025年湖北黃石市大冶市中小企業(yè)融資擔(dān)保有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 2025年神經(jīng)外科護(hù)理工作計(jì)劃
- 鋼結(jié)構(gòu)施工管理培訓(xùn)課件
- 2024年度工程建設(shè)項(xiàng)目安全評(píng)價(jià)合同2篇
- 《飛機(jī)操縱面》課件
- 商業(yè)咨詢報(bào)告范文大全
- 自我發(fā)展與團(tuán)隊(duì)管理課件
評(píng)論
0/150
提交評(píng)論