版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Hibernate官網(wǎng):中文官網(wǎng):Java新視線:《HibernateinAction(ChristianBauerandGavin表類(lèi)關(guān)系(Ishas單、雙向Hibernate導(dǎo)入所需要的第jar包。導(dǎo)入 Addto<!DOCTYPEhibernate-configuration"-//Hibernate/HibernateConfigurationDTD3.0//EN"<!DOCTYPEhibernate-configuration"-//Hibernate/HibernateConfigurationDTD3.0//EN"<property<property打印sql<property格式化sql<property注:hibernate.cfg.xml可以從hibernate的zip中的etc StringpathHibernatepublicpublicclassHibernateUtilprivatestaticSessionFactoryConfigurationconf=newsessionFactory=}catch(ExceptionthrownewExceptionInInitializerError();//}}publicstaticvoid}publicstaticSessionreturn}publicstaticvoidcloseSession(Session}}Browser:Stringpath=C:\Java\tomcat映射文件用于映射表和類(lèi)的關(guān)系,和類(lèi)在同一個(gè)包中;一個(gè)類(lèi)對(duì)應(yīng)一個(gè)映射文件(bm<?xml<?xml<!DOCTYPEhibernate-"-//Hibernate/HibernateMapDTD<classname="User"<idname="userId"指定idnative:表示由數(shù)據(jù)庫(kù)自己管理IDMySQL(自增(自增)Oracle(序列)<generator根據(jù)po<propertyname="userName"<propertyname="createTime">配置User.hbm.xml /blog/144652getsql語(yǔ)句;po.User;null制,ID不會(huì)發(fā)送sql語(yǔ)句org.hibernate.StaleStateException:Batchupdatereturnedunexpectedrowcountfromupdate[0]actualrowcount0expectedsession.delete(ObjectID刪除實(shí)體org.hibernate.StaleStateException:Batchupdatereturnedunexpectedrowcountfromupdate[0];actualrowcount:0;expected:1session.createQuery(Stringlist()與i Listlist() tor tor()在同一session中,再次調(diào)用i ite()查詢所有ID后,查看一級(jí)緩存中是否有ID對(duì)應(yīng)的實(shí)體。沒(méi)有,根據(jù)ID從數(shù)據(jù)庫(kù)中ObjectQuerysetParameter(intposition,ObjectJDBCQuerysetParameter(Stringname,ObjectQueryQuerysetFirstResult(intStringhql="FROMEmp";List<Emp>emps=for(Emp設(shè)置從哪條實(shí)體開(kāi)始,從Stringhql="FROMEmp";List<Emp>emps=for(Emp<classname="Emp"<queryFROMEmpWHEREsal< List<Emp>emps=List<Emp>emps=session.createSQLQuery(StringStringsql="SELECTemp_name,dept_nameFROMempe"+"INNERStringsql="SELECTemp_name,dept_nameFROMempe"+"INNERJOINdeptdone.dept_id=d.dept_id"+"WHEREemp_id=?";Object[]obj=(Object[])session.createSQLQuery(sql).setParameter(0,
O/RMap對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映Hibernate(Transient(Persist(DetachedObjectsObjectsINSERT、UPDATE、DELETE把內(nèi)存中的狀態(tài)同步到數(shù)據(jù)庫(kù)中。ObjectsSession管理。debug追蹤一下insertintoinsertintoID<generatorIDMySQL(自增SQLServer(自增)Oracle(序列)save()sqlcommit()sql語(yǔ)句<id<idname="userId"<generator<id<idname="id"<generator<paramHibernateUUID32IDpojoIDString;<id<idname="userId"column="user_id"<generator<class<classname="IdCard"<idname="idCardId"<generator<param <one-to-one "constrained="true"></one-to-Hibernate 7 where="arbitrarysqlwherecondition"check="arbitrarysqlcheckcondition"subselect="SQL123<generator12Hibernate類(lèi)型,指定主鍵字段的數(shù)據(jù)庫(kù)中的數(shù)據(jù)類(lèi)型。如果沒(méi)有配置,3<idname="id"type="long"<generator<param<param<idname="id"type="long"<generator<param<param1formula="arbitrarySQLexpression" 12定39Hibernate基本類(lèi)型名(比如:integer,string,一個(gè)Java類(lèi)的名字,這個(gè)類(lèi)屬于一種默認(rèn)基礎(chǔ)類(lèi)型(比如: 12鑒別器字段的值,默認(rèn)為記錄對(duì)應(yīng)的完整類(lèi)名??梢栽?lt;class和<subclass中利用屬性<classname="Car"table="car"discriminator-<idname="carId"<generator<discriminator<subclassname="Bus"discriminator-<property<subclassname="Taxi"discriminator-<property typeTaxidiscriminator-value=”T”Taxitype值為”T”。 1239DDLproperty-ref的<many-to-oneunique="true">=<one-to-4基本操作名稱為:none|all|save-sql語(yǔ)句。只對(duì)查詢有效。值為|no-|false,默認(rèn)為。lazily5抓取。值為select|join,默認(rèn)為select。7 124據(jù)庫(kù)表之間通過(guò)一個(gè)外鍵對(duì)主鍵進(jìn)行約束這個(gè)選項(xiàng)影響3956Hibernate《 》Hibernate基本類(lèi)型名(比如:integer,string,character,date,timestamp,float,binary,serializable,object,blob一個(gè)Java類(lèi)的名字,這個(gè)類(lèi)屬于一種默認(rèn)基礎(chǔ)類(lèi)型 (比如: int,float,char,java.lang.String,java.util.Date,java.lang.Integer,java.sql.Clob)。比如:java.lang.StringVARCHAROracleVARCHAR2)的映射。date,time,timestampjava.util.DateSQLDATETIMETIMESTAMP或等價(jià)類(lèi)型)的映射。calendar,calendar_datejava.util.CalendarSQLTIMESTAMPDATE(或等價(jià)類(lèi)型)的映射。big_decimal,big_integerjava.math.BigDecimaljava.math.BigIntegerNUMERICOraclelocale,timezone,java.util.Localejava.util.TimeZonejava.util.CurrencyVARCHAR(或者ID。java.lang.ClassVARCHAROracleVARCHAR2類(lèi)型)的映射。Class被映射為它把字節(jié)數(shù)組(bytearrays)SQLJavaHibernateserializable。clob,JDBC類(lèi)java.sql.Clob和java.sql.Blob的映射。某些程序可能不適合使用這個(gè)類(lèi)型,因?yàn)?后。)一對(duì)一外鍵關(guān)聯(lián)(單向人員 和類(lèi)IdCard為一對(duì)一關(guān)系 的實(shí)例為主對(duì)象,IdCard的實(shí)例為從對(duì)象。<class<classname="IdCard"<idname="idCardId"<generator<many-to-onename=""unique="true" 一對(duì)一外鍵關(guān)聯(lián)(雙向<class<class<id"Id"<generator根據(jù)po<property Name"<one-to-onename="idCard"property-一對(duì)一唯一主鍵關(guān)聯(lián)(單向ER圖(PDM,抽象,物理圖(CDM,對(duì)應(yīng)于數(shù)據(jù)庫(kù))ER圖對(duì)應(yīng)于多個(gè)物理圖。 <class<classname="IdCard"<idname="idCardId"<generator<paramconstrained<one-to-one "constrained="true"></one-to-class="foreign"/property-> /constrained="true"一起表明了idcard_id為一對(duì)一唯一主鍵關(guān)聯(lián)(雙向<classname="IdCard"<idname="idCardId"<generator<param <propertyname="createTime"<one-to-one "constrained="true"></one-to-<generator<property Name" " Id" <class<id <one-to-onename="idCard"cascade="save-update"></one-to-1)2).get3)idCard.get().get采取的是第3種途徑,故從對(duì)象idCard也要關(guān)聯(lián)主對(duì)象。否則會(huì)產(chǎn)生異常:org.hibernate.id.IdentifierGenerationExceptionattemptedtoassignidfromnullone-to-oneproperty:。多對(duì)一關(guān)聯(lián)(單向<classname="Emp"<idname="empId"<generator<propertyname="empName"<propertyname="sal"<many-to-onename="dept"column="dept_id"></many-to-<classname="Dept"<idname="deptId"<generator<propertyname="deptName"從多對(duì)象開(kāi)始數(shù)據(jù)默認(rèn) 一對(duì)多關(guān)聯(lián)(單向<classname="Emp"<idname="empId"<generator<classname="Dept"<idname="deptId"<generator<propertyname="deptName"classset<set<key<one-to-many<property<propertyname="empName"<propertyname="sal"從一對(duì)象開(kāi)始數(shù)據(jù)在<set>cascade="save-update"1+2nsql1+ninsert語(yǔ)句nupdate語(yǔ)句。lazy="false"一對(duì)多關(guān)聯(lián)(雙向從一對(duì)象開(kāi)始數(shù)在<set>cascade="save-update"1+2nsql1+ninsert語(yǔ)句nupdate語(yǔ)句。(inverse="true",多對(duì)多關(guān)聯(lián)(單向<classname="Student"<idname="studentId"<generator<propertyname="studentName"屬性Set<Coursecourse,創(chuàng)建關(guān)聯(lián)表student_course<setname="course"的主鍵<key<many-to-manyclass="Course"column="course_id"></many-to-<classname="Course"<idname="courseId"<generator<propertyname="courseName"在<set>cascade="save-update"即可。lazy=" fetch="select"多對(duì)多關(guān)聯(lián)(雙向不能雙向關(guān)聯(lián),否則關(guān)聯(lián)表會(huì)重復(fù)插入,拋出主鍵重復(fù)異常: 關(guān)級(jí)系 聯(lián)<one-to-one 關(guān)系級(jí)關(guān)系級(jí)關(guān)聯(lián)關(guān)系級(jí)雙向關(guān)聯(lián)后選課表插入 ::- :-flagfall:-carfare: - :<pi> <class<classname="Car"<idname="carId"<generator<discriminatorcolumn="type"<property <subclass<subclassname="Bus"<property<property<subclass<property<propertycar_idcar_id lineVariablecharacters(255)carfareFloat car_idcar_id carfarefloat <class <idname="carId"不能使用native<generator<property <union-subclassname="Bus"<property<property<union-subclassname="Taxi"<property<property<propertyflagfallcarfareIdentifier_1car_id<pi> car_id bus_idtaxi_idint flagfallfloatcarfare<class<class<idname="carId"<generator<property <joined-subclassname="Bus"<!--key表示bus_id既是主鍵又是外鍵 car_id--<key<property<property<property<joined-subclassname="Taxi"<key<property<propertysave&businnerjoincar,獲取完整信息依賴對(duì)象(Dependent典型示例:UserAddress<pi> provincevarchar(255)cityvarchar(255)district :userName:address:province: :district:<class<classname="User"<idname="userId"<generator<propertyname="userName"<componentname="address"<property<property<propertySave&useruser=(User)session.load(User.class,1);address=user.getAddress();Useruser=newUser();Addressaddress=newAddress();user.setAddress(address)組件作為聯(lián)合標(biāo)識(shí)符(Componentsascomposite1.inplementsOverridehashCode()andequals()publicclassEmpprivateintempId;privateStringempName;privatefloatsal;privateDeptdept;publicEmp()publicEmp(StringempName,floatsal)this.empName=this.sal=}}publicclassDeptprivateintprivateStringprivateSet<Emp>emps=new}查詢實(shí)體"FROM類(lèi)名SELECTFROMASStringStringhql="FROMEmpStringStringhql"SELECTeFROMEmpe";//eEmpList<Emp>emps=for(Empemp:emps)Stringhql1="SELECT*FROMEmpStringhql2="SELECTempId,empName,sal,deptFROM查詢實(shí)體屬性StringStringhql="SELECTempNameFROMList<String>empNames=Stringhql="SELECTempIdFROMList<Integer>empIds=StringStringhql="SELECTempId,empNamefromList<Object[]>properties=for(Object[]property:properties){System.out.println((Integer)property[0]+"|"+(String)property[1]);}StringStringhql="SELECTnewEmp(empName,sal)FROMEmp";List<Emp>emps=session.createQuery(hql).list();(AS,而且?guī)Р樵儣l件StringStringhql="SELECTempNamefromEmpWHEREempNamelikeStringhql="SELECTempNamefromEmpWHEREempNamelike?";List<String>empNames= Stringhql="SELECTempName,salfromEmpWHEREsalBETWEEN?AND?";Queryquery=session.createQuery(hql);query.setParameter(0,query.setParameter(1,5000f);List<Object[]>properties=query.list();Stringhql="SELECTempName,salfromEmpWHEREsalBETWEEN?AND?";List<Object[]>properties=session.createQuery(hql).setParameter(0,2000f).setParameter(1,5000f).list();Stringhql="SELECTempName,salStringhql="SELECTempName,salfromEmpWHEREempNamelike:empNameANDsal>:sal";List<Object[]>properties=session.createQuery(hql).setParameter("empName","e%").setParameter("sal",3000f).list();StringStringhql="FROMEmpWHEREempIdList<Emp>emps=session.createQuery(hql).setParameterList("ids",newStringhql="SELECTCOUNT(empId)FROMlongcount=(Long)HQLjoin的形式:implicit(隱式)explicit(顯式。explicit:FROM子句中明確給出了JOIN關(guān)鍵字。這是建議使用的方式。implicit:不使用join關(guān)鍵字,關(guān)聯(lián)使用"點(diǎn)號(hào)"來(lái)進(jìn)行“,相當(dāng)于innerjoin。(e,"FROMEmpeWHERE"SELECTd.deptName,e.empName,e.salFROMDeptdLEFTJOINd.emps"SELECTd.deptName,e.empName,e.salFROMDeptdLEFTJOINd.empseWITHinnerjoin(內(nèi)連接left[outer]join(左外連接)right[outerjoin(右外連接)fulljoin(全連接,并不常用)ORDERGROUP條件查詢(Criteria類(lèi)ORDER//createCriteria(//createCriteria(HQL語(yǔ)句"FROMList<Dept>depts=//SELECTd.deptNameFROMDeptdList<String>deptNames=session//SELECTdeptNameFROMDeptList<String>deptNames=session //生成"FROM.setProjection(Pperty("deptName")生成"SELECT//SELECT//SELECTdeptId,deptNamednameFROMDeptList<Object[]>depts=session //生成"FROM.setProjection(PjectionList().add(Pperty("deptId")).add(Pperty("deptName"),"dname"))名 //生成"FROMDept.setProjection(Pperty("d.deptName"))//生成"SELECT//SELECT//SELECTdeptNameFROMDeptWHEREdeptId>=2ANDdeptNamelike'%2'List<String>deptNames=session.add(Restrictions.ge("deptId",2))//"WHERE.add(Restrictions.like("deptName","2",Mat ode.END))//"ANDdeptNameLIKE'%2'"http://SELECT//SELECTd.deptId,d.deptName,e.empName,e.salFROMDeptdLEFTJOINd.empseWHEREd.deptId>=2ANDd.deptNamelike'%2'List<Object[]>depts= //生成"FROMDept.createAlias("d.emps","e",Criteria.LEFT_JOIN)//"LEFTJOINd.empse" .add(Pperty("d.deptName")) .add(Restrictions.ge("deptId",2))//"WHERE.add(Restrictions.like("deptName","2",Mat ode.END))//"ANDdeptNamelike'%2'"ORDERBY//SELECT//SELECTd.deptId,d.deptName,e.empName,e.salFROMDeptdLEFTJOINd.empseORDERBYdeptIdDESC,empNameList<Object[]>depts=.createAlias("d.emps","e",.addOrder(Order.desc("d.deptId"))//"ORDERBYd.deptId.addOrder(Order.asc("e.empName"))//",e.empName.setMaxResults(3)//"limitSql語(yǔ)句。延遲加載機(jī)制是為了避免一些無(wú)謂的性能開(kāi)銷(xiāo)而提出來(lái)的。HibernateSQL語(yǔ)句,從數(shù)據(jù)庫(kù)獲取相應(yīng)的值。<classlazy="false"load()<classlazy="true">實(shí)體時(shí),加載實(shí)體1Deptdept=(Dept)session.load(Dept.class,2intdeptId=3StringdeptName=4Set<Emp>emps=當(dāng)<classname="Depttable="deptlazy="false"/>時(shí)line1:發(fā)送"SELECT*FROMdeptWHEREdept_id=1"line4:發(fā)送"SELECT*FROMempWHEREdept_id=1"line1dept的屬性值。當(dāng)<classname="Depttable="deptlazy="true"/>line3:發(fā)送"SELECT*FROMdeptWHEREdept_id=1"line4:發(fā)送"SELECT*FROMempWHEREdept_id=1"1-->NN--<setlazy="true">關(guān)聯(lián)實(shí)體集合時(shí),再加載關(guān)聯(lián)實(shí)體集合。與實(shí)體的<class>的<setlazy="extratrue相同,只是加載的內(nèi)容不一樣。extra比較智能,只加載所需要的內(nèi)容,而true是加載整個(gè)關(guān)聯(lián)實(shí)體集合。一般選用extra。deptdept=(Dept)session.load(Dept.class,1);Set<Emp>emps=dept.getEmps();for(EmpSystem.out.println(emp.getEmpName()+"\t"+}1234567前提:<class當(dāng)<setname="empslazy="false">line2:發(fā)送"SELECT*FROMdeptWHEREdept_id=1"和"SELECT*FROMempWHEREdept_id=1"當(dāng)<setname="empslazy="true">line2:發(fā)送"SELECT*FROMdeptWHEREdept_id=1"line4:發(fā)送"SELECT*FROMempWHEREdept_id=1"當(dāng)<setname="empslazy="extra">line2:發(fā)送"SELECT*FROMdeptWHEREline4:發(fā)送"SELECTCOUNT(emp_idFROMempWHEREdept_id=1"line5:發(fā)送"SELECT*FROMempWHEREdept_id=1"N--實(shí)體<class>lazy1join語(yǔ)句同時(shí)查詢實(shí)體和關(guān)聯(lián)實(shí)體。當(dāng)關(guān)聯(lián)實(shí)體的<classlazy="true">時(shí),關(guān)聯(lián)實(shí)體加載時(shí)機(jī)由<many-to-one>lazy屬性決select語(yǔ)句查詢獲取。<many-to-onename="deptlazy="false<many-to-onename="dept"lazy="|no-">關(guān)聯(lián)實(shí)體時(shí),再加載關(guān)聯(lián)實(shí)1emp=(Emp)session.load(Emp.class,2System.out.println(emp.getEmpName()+"\t"+3Deptdept=4前提:<classname="Dept當(dāng)關(guān)聯(lián)實(shí)體<classname="Deptlazy="false">line2:發(fā)送"SELECT*FROMempLEFTJOINdeptONemp.dept_id=dept.dept_idANDemp.emp_id=1"當(dāng)<classname="Dept"><many-to-onename="deptlazy="false">line2:發(fā)送"SELECT*FROMempWHEREemp_id=1"和"SELECT*FROMdeptWHEREdept_id=?",?1sql中獲取。當(dāng)<classname="Dept"><many-to-onename="dept"lazy="|no-時(shí)line2:發(fā)送"SELECT*FROMempWHEREemp_id=1"line4發(fā)送SELECT*FROMdeptWHEREdept_id=?"實(shí)體 <many-to-<one-to-實(shí)體Load()fetch="select"setnsql語(yǔ)句。fetch="subselect":加載set中的關(guān)聯(lián)實(shí)體。發(fā)送1條sql語(yǔ)句。易耗用大量資源。實(shí)體并把部門(mén)實(shí)體放入一級(jí)緩存中當(dāng)下一個(gè)員工的部門(mén)信息在一級(jí)緩存中存在時(shí)則直接從緩存中。緩存是數(shù)據(jù)庫(kù)數(shù)據(jù)在內(nèi)存中的臨時(shí)容器,它包含了庫(kù)表數(shù)據(jù)在內(nèi)存中的臨時(shí)拷貝,位于數(shù)據(jù)庫(kù)和層ORM在進(jìn)行數(shù)據(jù)時(shí),會(huì)根據(jù)緩存管理策略,首先在緩沖中查詢,如果發(fā)現(xiàn),則直接使用,避免數(shù)據(jù)通過(guò)某種機(jī)制實(shí)現(xiàn)各個(gè)緩存實(shí)例之間的數(shù)據(jù)同步,任何一個(gè)實(shí)例的數(shù)據(jù)修改后,將導(dǎo)致整 sessionsession:sessionsession銷(xiāo)毀一級(jí)緩存銷(xiāo)毀。只實(shí)體,不屬性以map結(jié)構(gòu)實(shí)體,id為key,實(shí)體entity為value。 te()讀寫(xiě)list只寫(xiě)不讀save()寫(xiě)不能session的方法(get,load,list,ite)寫(xiě)一級(jí)緩存,但可以刪除一級(jí)緩存中的session的一級(jí)緩存session.evict(Objectobject)SessionFactory的生命周期一致。ProviderProviderEHCache c:WINDOWS\temp--<diskStore c:WINDOWS\temp--<diskStore <cachename="com.liby.po.Emp"配置hbm.xml <class-cacheclass="com.liby.po.Emp"usage="read- <classname="Emp"<cacheusage="read-<id<generator <class-cache<class-cacheclass="com.liby.po.Emp"usage="read-1try2session=3emp=(Emp)session.load(Emp.class,45}finally67}89trysession=emp=(Emp)session.load(Emp.class,}finally}selectselect...fromempemp0_whereemp0_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣東嶺南職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年福建長(zhǎng)泰國(guó)有投資集團(tuán)有限公司及權(quán)屬子公司招聘5人考試重點(diǎn)題庫(kù)及答案解析
- 2026年廣西衛(wèi)生職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026云南玉溪市江川區(qū)人民政府辦公室公益性崗位招聘2人參考考試題庫(kù)及答案解析
- 2026年?yáng)|營(yíng)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年上海電力大學(xué)單招綜合素質(zhì)考試參考題庫(kù)含詳細(xì)答案解析
- 2026年合肥經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 2026年重慶海聯(lián)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考題庫(kù)含詳細(xì)答案解析
- 2026年揚(yáng)州中瑞酒店職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年銅仁幼兒師范高等??茖W(xué)校單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 外呼服務(wù)合同
- 電子商務(wù)供應(yīng)鏈管理課件
- 標(biāo)準(zhǔn)波導(dǎo)和法蘭尺寸
- 繪本:我喜歡書(shū)
- 2023健康住宅建設(shè)技術(shù)規(guī)程
- 漢聲數(shù)學(xué)繪本《數(shù)是怎么來(lái)的》
- 統(tǒng)編版中外歷史綱要下冊(cè) (全球聯(lián)系的初步建立與世界格局的演變) 課件
- GB/T 26471-2023塔式起重機(jī)安裝、拆卸與爬升規(guī)則
- GB/T 26126-2018商品煤質(zhì)量煤粉工業(yè)鍋爐用煤
- GB/T 14048.2-2020低壓開(kāi)關(guān)設(shè)備和控制設(shè)備第2部分:斷路器
- GA 801-2014機(jī)動(dòng)車(chē)查驗(yàn)工作規(guī)程
評(píng)論
0/150
提交評(píng)論