实践1一对多、多对一关联关系的使用实验目的学习一对多、多对一关联关系的使用,了解双向关联及双向关联中inverse属性的使用。技术要点●SQL基础知识;●Hibernate基础知识。实验步骤1.将数据库“HibernateProject02”中的数据清空,然后参照实践“Cascade数据初始化”,重新添加初始化数据2.运行MyEclipse5.0GA(或更高版本),新建一个“JavaProject”,项目名称为“HibernateProject12”,加入mysql-connector-java-3.1.12-bin.jar和Hibernate类库支持,然后在src中创建三层类包。3.按照《实践2立即检索》的第4、5、6步,创建实体对象、map文件及hibernate.cfg.xml文件,最后项目结构如下:1.1双向关联4.建立Student.hbm.xml,内容如下:Student.hbm.xmlxmlversion="1.0"?>DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
id>class>hibernate-mapping>5.建立Team.hbm.xml,内容如下:Team.hbm.xmlxmlversion="1.0"?>DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">id>set>class>hibernate-mapping>6.在“com.qrsx.hibernate.persistence”中创建StudentDAO.java,代码如下:StudentDAO.java/**@(#StudentDAO.javaJul5,2007*Copyright2007qingdaosoftware,Inc.Allrightsreserved*/packagecom.qrsx.hibernate.persistence;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.Transaction;importcom.qrsx.hibernate.model.Student;importcom.qrsx.hibernate.model.Team;/****Company:青软实训*Author:王希涛*Version:1.0*Date:Jul5,2007*/publicclassStudentDAOextendsBaseDAO{staticSessionsession=null;staticTransactiontx=null;/***设置inverse属性*/publicstaticvoidtest1({try{session=HibernateUtil.currentSession(;//开启连接tx=session.beginTransaction(;//开启事务//建立学生Studentstu=newStudent(;stu.setName("spark";stu.setCardId("200211332";stu.setAge(33;StudentremoveStu=null;Teamteam=(Teamsession.get(Team.class,"ff80808105416d3b0105416d3eca2222";removeStu=(Studentsession.get(Student.class,"ff80808105416d3b0105416d3eca0001";team.getStudents(.add(stu;team.getStudents(.remove(removeStu;tx.commit(;session.clear(;}catch(HibernateExceptione{//捕捉例外e.printStackTrace(;tx.rollback(;}finally{HibernateUtil.closeSession(session;}}}7.建立StudentManager.java,代码如下:StudentManager.java:/**@(#StudentManager.javaJul5,2007*Copyright2007qingdaosoftware,Inc.Allrightsreserved*/packagecom.qrsx.hibernate.business;importcom.qrsx.hibernate.persistence.StudentDAO;/****Company:青软实训*Author:王希涛*Version:1.0*Date:Jul5,2007*/publicclassStudentManager{/***@paramargs*/publicstaticvoidmain(String[]args{StudentDAO.test1(;}}8.现在已经为Team和Student设置了双向的关联,但是并没有设置inverse标签。9.运行StudentManager,查看运行结果。EclipseConsol...