




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*第一章*Hibernate是一个优秀的持久化框架持久化?只有数据保存到数据库中 这个对象才称为 持久化对象瞬时状态:保存在内存的程序数据,程序退出后,数据就了,称为瞬时状态持久化:将程序数据在瞬时状态和持久状态之间转换的机制持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态ORM?ORM(对象-关系):完成对象数据到关系型数据的机制称为对象-关系,简称ORM。是一个主流的持久化框架在JDBC基础上进行分装只需要少量代码就可以完成持久化工作是一个优秀的ORM(对象-关系)机制信息通过文件保存在业务层以面象的方式编程,不用考虑数据保存形式手工搭建Hibernate框架:
2、1.导包:(最少依赖的jar包)将地址,本使用3.2.5。目录/hibernate3.jar和/lib下的hibernate运行时必须的包加入classpath中: antlr.jar,cglng.jar,jta.jar,dom4j.jarmons-cmons-loggi2.添加Hibernate配置文件 hibernate.cfg.xml(模板 源代码/etc下)打开 源代码 下 etc/ hibernate.cfg.xml到 src下(注意:默认hibernate会在src下名称为hibernate.cfg.xml文件,这与Ibatis中SqlMapConfig.xml文件一样,主要配置数
3、据库连接方式,打开数据库连接)rootrootjdbc:/localhost:3306/usercom.jdbc.Driver/表示数据库方言 不同数据库 方言不同.hibernate.dialect./ 表示是否显示 sql语句5Dialecttrue/ 表示通过实体类创建 数据库表 update/createupdate3.添加实体类(例如:User类)com.hibernate.user.bean.User:public claser privateuid;privateString userName;privateString password;publicgetUid() retur
4、n uid;public void setUid(this.uid = uid;uid)public String getUserName()return userName;public void setUserName(Stringthis.userName = userName;userName) public String getPassword() return password;public void setPassword(String password) this.password = password;4.实体类目录中添加 User.hbm.xml(模板在源代码eghibern
5、ateauction)5. hibernate.cfg.xml文件中添加 User.hbm.xml6.创建Userpublic claprivate sic/ 1.类serimplements IUsersic Sesses;hibernate.cfg.xml文件Configuration cfg=new Configuration().configure();/2.创建sesFactorySesFactory sesFactory= cfg.buildSesFactory();/3.打开sesses=sesFactory.openSes();1 .添加 (查看主键值是否返回) (User 类
6、)truepublicvoid addUser(User user) / 此时 为瞬时状态/4.开启事物Trantry ion tx=ses.begranion();/ 5.持久化到数据库/ sesses/6.save(user);.persist(user);/持久化状态提交事物mit(); catche.pr(HibernateException e)StackTrace();tx.rollback();finally/7. 关闭sesses.close();/ 脱管状态测试:Useruser=new User();User user =new User();user.setPasswor
7、d(zhangsan);user.setUserName();user.addUser(user);2.删除public voidTrandeleteUser(uid) ion tr=ses.begranion();try User user=new User();user.setUid(uid);ses.delete(user); mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:user3.修改.d
8、eleteUser(1);publicvoid updateUser(User user)Trantry ion tr=ses.begranion();ses.update(user);/或者/ses.merge(user);mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:User user=new User(); user.setUid(2);user.setPassword(lisi);user.
9、setUserName();user.updateUser(user);4.查询(查询单个对象)public User findUserByUid(uid) User user=(User) ses ses.close();return user;.get(User.class, uid);测试:User user=userSystem.out.pr.findUserByUid(2);ln(user.getUserName()+,+user.getPassword();5. load 方法(懒加载)public User findUserByUid1(uid)/注意 :的实体类不能加上 fin
10、al 关键字 是因为 懒加载 会通过通过这个实体类 派生一个子类出来 实现懒加载(提供一个无参构造函数)/所以上面的user这个对象不可能为null 如果没有查到懒加载也会生成一个子类对象User user=(User)ses.load(User.class, uid);System.out.prln(user.getClass().getName();/System.out.prln(user.getPassword();/Hibernate.initialize(user);ses.close();return user;测试:User user=user.findUserByUid1(2
11、);System.out.prln(user.getUserName()+,+user.getPassword();6. 更新或者保存public void saveOrUpdateUser(User user)Trantry ion tr=ses.begranion();ses.saveOrUpdate(user); mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:User user=new Use
12、r();user.setPassword();user.setUserName(wangwu1);user.setUid(6);user.saveOrUpdateUser(user);7.对象的状态(三个状态:瞬时状态,持久化状态,脱管状态)8.如何动态生成表 领域模型 (oop创建数据库表)(Teacher 类)Teacher 类:1.创建实体类 2. 创建 teacher.hbm.xml 3.hibernate.cfg.xml 配置在 hibernate.cfg.xml 文件中添加如下内容:update如何用 Xdoclet+ant 生成文件:如何开始使用 Xdoclet?Xdoclet
13、不是单独可以运行的工具(不像 Ant 工具),它可以与其它工具一起配合运行,如Ant。下面的例子就是基于 Ant 和 xdoclet 的。1、 首先需要保证 ant 是可用的2、并解压xdoclet 的包(现在使用的是xdoclet2,具体版本是 xdoclet-plugins-1.0.3)。3、 在 ant 构建工具中定义 xdoclet 任务,并使用:如何开始使用 Ant?1、 确保你的机器已经安装了 JDK,确保你的 path 环境变量中包含有 java 虚拟机的运行程序,确保你的环境变量中有 JAVA_HOME 变量2、ant 并解压3、 设置 ANT_HOME 环境变量,指向ant
14、解压根目录4、 在 path 环境变量中,添加ANT_HOMEbin 目录5、 打开控制台,运行:ant6、 如果能够运行 ant(忽略这些异常:Buildfile: build.xml does not exist!),而不是出现诸如命令无法解释的错误,那么你的 ant 就安装成功了创建.hibernate.ant.bean 包:Test 类:/*/hibernate.classtable=t_testauthor Administratorpublic class Test /*hibernate.idgenerator-class=native*/privateid;/* hiberna
15、perty*/privateString name;publicreturngetId() id;public void setId(this.id = id;id)public String getName() return name;public void setName(String name) = name;2.工程目录下 放入 build.xml 文件:name=生成hibernate文件/3.MyEclipse-Window-show View other Ant-Add Buildfiles run as Ant build9.传统模型 (表生成
16、实体类)(Student 类)用 MyEclipse 向导 (MyEclipse DB Brower)*第二章*1一对多, 多对一(Emp 表,Dept 表)Dept 实体类:/*一对多author Administrator*/public class Dept privatedeptId;String deptName;/部门名称privateprivateSet emps;public Dept(deptId, String deptName,Set emps)this.deptId = deptId;this.deptName = deptName;this.emps = emps;p
17、ublic Dept() publicgetDeptId() return deptId;public void setDeptId(deptId)this.deptId = deptId;public String getDeptName() return deptName;public void setDeptName(String deptName)this.deptName = deptName;public Set getEmps() return emps;public void setEmps(Set emps) this.emps = emps;Dept.hbm.xml 文件:
18、one-to-many class=com.hibernate.emp.bean.Emp/Emp 实体类:/*多对一author Administrator*/public class Emp privateem;privateString empName;privateDeptdept;public Emp(em, StringempName, Dept dept) this.em= em;this.empName = empName;this.dept = dept;public Emp() public String getEmpName() return empName;public
19、void setEmpName(String empName)this.empName =empName;publicgetEm() return em;public voidthis.emsetEm= em(em) ;public DeptgetDept() return dept;public void setDept(Deptthis.dept = dept;dept) Emp.hbm.xml 文件:实例:1.一对多 添加 Dept 部门Dept类:private ssic Sesicses;/1.hibernate.cfg.xml文件Configuration cfg=new Conf
20、iguration().configure();/2.绑定sesFactoruSesFactory sesFactory= cfg.buildSesFactory();/3.打开 sesses= sesFactory.openSes();public void addDept(Dept dept)/4. 开启事物Trantry ion tr=ses.begranion();/5. 持久化ses.persist(dept);/6.提交mit(); catch (HibernateException e) / TODO Auto-generatedcatchblocke.prStackTrace(
21、);tr.rollback();finallyses.close();测试:Deptdd=new Dept();Dept dept=new Dept();dept.setDeptName(研发一部); dd.addDept(dept);2.多对一 添加 Emp 表Emp类:private ssic Sesicses;/1.hibernate.cfg.xml文件Configuration cfg=new Configuration().configure();/2.绑定sesFactoruSesFactory sesFactory= cfg.buildSesFactory();/3.打开 ses
22、ses= sesFactory.openSes();publicvoid addEmp(Emp emp)Trantry ion tr=ses.begranion();/5. 持久化ses.persist(emp);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catchblocke.prStackTrace();tr.rollback();finallyses.close();测试:Emp emp=new Emp();emp.setEmpName();Dept dept=new Dept(); dept.setDe
23、ptId(1); dept.setDeptName(研发一部); emp.setDept(dept);ed.addEmp(emp);3. 删除一个 Dept 部门 (同时删除部门下的)public void deleteDept(/4. 开启事物deptId)Trantry ion tr=ses.begranion();/5. 持久化ses.delete(ses.get(Dept.class, deptId);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr
24、.rollback();finallyses.close();Dept.hbm.xml文件修改:解释:inverse=trueinverse 是“反转”的意思,表示关联关系的控制权。为 true,表示由对方负责关联关系的添加和删除;为 false,表示由自己负责关联关系。(是否放弃系)cascade 级联关联关系true 放弃关: 对所有操作都进行级联: 对所有操作都不进行级联: 执行添加更新操作时级联: 执行删除操作时级联all nonesave-updatedeletelazy 表示懒加载 为 false关闭懒加载为 true 开启懒加载(默认)4. 一对多添加 Dept 部门 同时添加测
25、试:Dept dept=new Dept(); dept.setDeptName(研发一部);Emp emp1=new Emp(); emp1.setDept(dept);emp1.setEmpName();Emp emp2=new Emp(); emp2.setDept(dept);emp2.setEmpName(钱九);Set emps=new HashSet(); emps.add(emp1);emps.add(emp2);dept.setEmps(emps);dd.addDept(dept);注意: cascade=”save-update”加上5. 修改钱九对应的部门原来部门是 研发
26、一部现在 将钱九到研发三部public void updateDept(Dept dept)/4. 开启事物Trantry ion tr=ses.begranion();/5. 持久化ses.update(dept);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:Dept dept=new Dept(); dept.setDeptId(3);dept.setDeptName(研发三部);E
27、mp emp=new Emp();emp.setEm(7);emp.setEmpName(钱九);emp.setDept(dept);Emp emp1=new Emp();emp1.setEm(8);emp1.setEmpName();emp1.setDept(dept);Set emps=new HashSet(); emps.add(emp);emps.add(emp1);dept.setEmps(emps);dd.updateDept(dept);注意: cascade=”save-update”加上6. 查询一个部门 并查询出当前部门所有public DeptDeptsesfindDe
28、ptByDeptId(deptId)dept=(Dept)ses.close();.get(Dept.class,deptId);return dept;测试:Dept dept= dd.findDeptByDeptId(3);System.out.pr System.out.pr for(Emp emp :ln(部门名称:+dept.getDeptName();ln(部门:);dept.getEmps()System.out.pr(emp.getEmpName()+ );以上针对 Demp 表进行 增删改查操作7. 多对一(Emp 表) 删除(删除一个员工)添加 Emp 案例 2 已实现Em
29、p类:public void deleteEmp(Emp emp)Trantry ion tr=ses.begranion();/5. 持久化ses.delete(ses.get(Emp.class,emp.getEm();/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:Emp emp=new Emp();emp.setEm(2);ed.deleteEmp(emp);8. 修改一个员工和部门
30、public void updateEmp(Emp emp)Tranion tr=sestry /5. 持久化.begranion();ses.merge(emp);/6.提交mit(); catch (HibernateExceptione) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:Emp emp=new Emp();emp.setEm(6);emp.setEmpName();Dept dept=new Dept();dept.setDeptId(3);dept
31、.setDeptName(研发三部); emp.setDept(dept);ed.updateEmp(emp);9. 查询一个员工信息 并显示对应部门public Emp findEmpByEm(em)Emp emp=(Emp) ses.get(Emp.class, em);Hibernate.initialize(emp.getDept();ses.close();return emp;Emp emp=ed.findEmpByEm(6);ln(员工:+emp.getEmpName();ln(所在部门:+emp.getDept().getDeptName();System.out.prSyst
32、em.out.pr以上是 Emp 表 增删改查操作2多对多(Student 表,Teacher 表)1.创建 Teacher,Student 实体类 和 teacher.hbm.xml,student.hbm.xmlcom.hibernate.student.bean 包:Student 类:/*一对多author Administrator*/public class Student privatestudetnId;privateString studentName;privateSet teachers;publicgetStudetnId() return studetnId;publ
33、ic void setStudetnId(studetnId)this.studetnId = studetnId;public String getStudentName() return studentName;public void setStudentName(String studentName)this.studentName = studentName;public Set getTeachers() return teachers;public void setTeachers(Set teachers)this.teachers = teachers;Student.hbm.
34、xml 文件:Teacher 类:/*一对多author Administrator*/public class Teacher privateteacherId;privateString teacherName;privateSet students;publicgetTeacherId() return teacherId;public void setTeacherId(teacherId) this.teacherId = teacherId;public String getTeacherName() return teacherName;public void setTeache
35、rName(String teacherName)this.teacherName = teacherName;public Set getStudents() return students;public void setStudents(Set students)this.students = students;Teacher.hbm.xml 文件:关系 由学生这时学生 才限t_student_teacher 表实例:1. 添加一个学生Student类:private ssic Sesicses;/1.hibernate.cfg.xml文件Configuration cfg=new Con
36、figuration().configure();/2.绑定sesFactoruSesFactory sesFactory= cfg.buildSesFactory();/3.打开 sesses= sesFactory.openSes();public void addStudent(Student student)/4. 开启事物Trantry ion tr=ses.begranion();/5. 持久化ses.persist(student);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch block
37、e.prStackTrace();tr.rollback();finallyses.close();测试:StudentStudentsd=new Student();student =new Student();student.setStudentName(sd.addStudent(student););2.添加老师Teacher类:ic Sesicprivatessses;/1.hibernate.cfg.xml文件Configuration cfg=new Configuration().configure();/2.绑定sesFactoruSesFactory sesFactory=
38、 cfg.buildSesFactory();/3.打开 sesses= sesFactory.openSes();public void addTeacher(Teacher teacher)/4. 开启事物Trantry ion tr=ses.begranion();/5. 持久化ses.persist(teacher);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试 :TeacherT
39、eachertd=new Teacher();teacher=new Teacher();teacher.setTeacherName(td.addTeacher(teacher););3. 添加一个学生和老师 但是两者没有关系 如何建立关系呢?设置 学生为端(由于操作学生)teacher.hbm.xml set中添加inverse=true(老师放弃端 由学生来)public void update(Student/4. 开启事物student)Trantry ion tr=ses.begranion();/5. 持久化ses.update(student);/6.提交mit(); catc
40、h (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:Student student=new Student();student.setStudetnId(1);student.setStudentName();Teacher teacher=new Teacher();teacher.setTeacherId(1);teacher.setTeacherName();HashSet teachers=new HashSet();
41、 teachers.add(teacher);student.setTeachers(teachers);HashSet students=new HashSet(); students.add(student);teacher.setStudents(students);sd.update(student);4. 添 加学 生, 老 师 建 立 两 者 关 系( 级 联 添 加student添 加cascade=save-update,delete)添加学生同时 允许 同时添加老师测试:Student student =new Student();student.setStudentName
42、();Teacher teacher=new Teacher();teacher.setTeacherName();HashSet students=new HashSet(); students.add(student);teacher.setStudents(students);HashSet teachers=new HashSet();teachers.add(teacher); student.setTeachers(teachers);sd.addStudent(student);5. 添加一个学生 分配给 xx 老师测试:Student student =new Student(
43、);student.setStudentName(1);Teacher teacher =new Teacher();teacher.setTeacherId(2);teacher.setTeacherName();/老师端 添加学生集合HashSet students=new HashSet();students.add(student); teacher.setStudents(students);/学生端 添加老师集合HashSet teachers=new HashSet(); teachers.add(teacher); student.setTeachers(teachers);s
44、d.addStudent(student);6. 删除 (删除同学 不应该同时删除老师吧 所以 学生端 级联 不应该 加上 delete)由于由 student关系 所以学生可以操作t_student_teacher 表public void deleteStudent(Student student)/4. 开启事物Trantry ion tr=ses.begranion();/5. 持久化ses.delete(student);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStac
45、kTrace();tr.rollback();finallyses.close();测试:Student student=new Student(); student.setStudentName( ); student.setStudetnId(1);sd.deleteStudent(student);7. 修改将 xx 同学 更换成 xx 老师 (老师换了)测试:Student student=new Student();student.setStudentName(student.setStudetnId(2););Teacher teacher=new Teacher();teache
46、r.setTeacherId(1);teacher.setTeacherName();HashSet teachers=new HashSet();teachers.add(teacher);HashSet students=new HashSet();students.add(student);teacher.setStudents(students);student.setTeachers(teachers);sd.update(student);8. 查询 xx 同学 对应的老师public Student findStudentByStudentId(studentId)Student
47、 student=(Student)sesstudentId);.get(Student.class,Hibernate.initialize(student.getTeachers();sesreturn.close();student;测试:Studentstudent= sd.findStudentByStudentId(2);System.out.prSystem.out.prln(学生:+student.getStudentName();ln(对应老师:);for(Teacher teacher : student.getTeachers()System.out.prln(teach
48、er.getTeacherName();3一对一(表,IdCard 表)类:public classprivateid;privateStringName;privateIdCard idCard;publicgetId()return id;public void setId(this.id = id;id) public String getName() returnName;public void this.setName =Name(StringName;Name) public IdCard getIdCard() return idCard;public void setIdCar
49、d(IdCard idCard) this.idCard = idCard;.hbm.xml 文件:IdCard 类:public claCard privateid;privateString cardNumber;private;publicgetId()return id;public void setId(id)this.id=id;publicreturnget;()public void this.set() =;public String getCardNumber() return cardNumber;public void setCardNumber(String card
50、Number)this.cardNumber = cardNumber;Idcard.html.xml 文件:键由!- 默认去找实例:类: 一对一 主键对主键1. 添加 一个人 并且分配一个:private ssic Sesicses;/1.hibernate.cfg.xml文件Configuration cfg=new Configuration().configure();/2.绑定sesFactorusesSesFactoryFactory= cfg.buildSesFactory();/3.打开 sesses= sesFactory.openSes();public void add/
51、4. 开启事物()Trantry ion tr=ses.begranion();/5. 持久化ses.persist();/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:pd=new();=newName(););.setIdCard idCard=new IdCard(); idCard.setCardNumber(/双向关联);idCard.set();.setIdCard(idCard
52、);pd.add();2. 删除一个人 (当前是主键 看对 idcard id 外键是否有影响)constrained=true 表示存在一个主外键约束public void delete/4. 开启事物()Trantry ion tr=ses.begranion();/5. 持久化ses.delete();/6.提交mit(); catch (HibernateException e) / TODO Auto-generatedcatch blocke.prStackTrace();tr.rollback();finallyses.close();测试:=newName(););.set.s
53、etId(1);pd.delete();结果: 对 idcard 表没有影响 ,因为表 与 idcard 表没有建立主外键关系3. 删除一个人也删除测试:=newName(););.set.setId(1);IdCard idCard=new IdCard();idCard.setId(1); idCard.setCardNumber(11);.setIdCard(idCard);pd.delete();4. 修改一个人号码public void updateIdCard(IdCard idCard)/4. 开启事物Trantry ion tr=ses.begranion();/5. 持久化s
54、es.update(idCard);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:IdCard idCard=new IdCard();idCard.setId(2); idCard.setCardNumber(1111111111);pd.updateIdCard(idCard);5. 查询一个人并且显示号:publicfindById(id)=(ses.close();)ses.get
55、(.class, id);return;测试:=System.out.prpd.findln(人:+ById(2);.getName();System.out.prln(:+.getIdCard().getCardNumber();一对一 主键对外键com.hibernate.other.bean 包:Other 类:public classOther privateId;privateStringName;privateIdCardOtheridCardOther;publicreturngetId() Id;public void setId(Id) this.Id =Id;public
56、StringreturngetName;Name() public void this.setName =Name(StringName;Name) public IdCardOther getIdCardOther() return idCardOther;public void setIdCardOther(IdCardOther idCardOther)this.idCardOther = idCardOther;other.hbm.xml 文件:cla table=t_.other.bean.Othername=Id type=com.hibernate.idcard.other.be
57、an 包:IdCardOther 类:public claCardOther privatecardId;privateString cardNumber;privateOthersonOther;publicreturngetCardId() cardId;public void setCardId(cardId)this.cardId = cardId;public String getCardNumber() return cardNumber;public void setCardNumber(String cardNumber)this.cardNumber = cardNumber
58、;publicreturnOther getOther;Other() public void setOthersonOthOther;ersonOther) this.Other =Idcardother.hbm.xml 文件:实例:Other类:1.添加 一个人 并且分配一个private ssic Sesicses;/1.hibernate.cfg.xml文件Configuration cfg=new Configuration().configure();/2.绑定sesFactoruSesFactory sesFactory= cfg.buildSesFactory();/3.打开
59、sesses= sesFactory.openSes();public void add/4. 开启事物(OthersonOther)Trantry ion tr=ses.begranion();/5. 持久化ses.persist(Other);/6.提交mit(); catch (HibernateException e) / TODO Auto-generated catch blocke.prStackTrace();tr.rollback();finallyses.close();测试:Otherpod=newOther();OthersonOther=newOther();Othe
60、r.setName();IdCardOther idCardOther=newidCardOther.setCardNumber(IdCardOther(););/配置双向idCardOther.setOthersonOther);Other.setIdCardOther(idCardOther);pod.add(Other);2. 删除一个人也删除public void delete/4. 开启事物(Otherson)Trantry ion tr=ses.begranion();/5. 持久化ses.delete();/6.提交mit(); catch (HibernateException
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实习实训基地合作协议合同范本
- 企业间的战略合作伙伴合同
- 全职劳动合同参考合同
- 5守株待兔(教学设计)-2023-2024学年语文三年级下册统编版
- Unit 1 How can I get there?Part B(教学设计)-2024-2025学年人教PEP版英语六年级上册
- 常年法律顾问服务合同
- 11 浮力 第二课时 教学设计-2024-2025学年科学四年级上册苏教版
- 建筑项目材料检测委托合同
- 中保人寿瑞祥养老保险合同范本
- 标准化苗木购销合同范本详解
- 2024届高考语文一轮复习:现代诗歌 专练(含答案)
- 《公路桥涵养护规范》(5120-2021)【可编辑】
- 2023年中国(安徽)大学生茶文化创新大赛试题库
- 锂离子电池简介课件
- 射线数字成像(DR)技术课件
- 全介质自承式架空光缆(ADSS)-设计和制造专题研讨教学课件
- 电气控制线路的设计和元器件选择
- 剖宫产术后子宫瘢痕妊娠诊治专家共识
- 注塑一线工资考核方案
- 工程质量回访记录
- GB/T 18268.1-2010测量、控制和实验室用的电设备电磁兼容性要求第1部分:通用要求
评论
0/150
提交评论