例子:老师与学生的一对多
老师实体类
package entity; import java.util.HashSet; import java.util.Set; /** * Teacher 实体类 * */ public class Teacher2 { private int id;//编号 private String name;//姓名 private Set<Student2> student2=new HashSet<Student2>(); /* * 构造方法 * */ public Teacher2() { } public Teacher2(String name) { this.name = name; } /* * 封装方法 * */ public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<Student2> getStudent2() { return student2; } public void setStudent2(Set<Student2> student2) { this.student2 = student2; } }
老师实体类的XML配置
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Teacher2"> <id name="id"> <generator class="sequence"> <param name="sequence">seq_teacher2</param> </generator> </id> <property name="name"></property> <set name="student2"> <key column="teacher2id"></key> <one-to-many class="entity.Student2" /> </set> </class> </hibernate-mapping>
学生实体类
package entity; /** * Student 实体类 * */ public class Student2 { private int id;//编号 private String name;//姓名 /* * 构造方法 * */ public Student2() { } public Student2(String name) { this.name = name; } /* * 封装方法 * */ public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
学生实体类的XML配置
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Student2"> <id name="id"> <generator class="sequence"> <param name="sequence">seq_student2</param> </generator> </id> <property name="name"></property> </class> </hibernate-mapping>
使用hibernate.cfg.xml映射其的XML路径
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库URL --> <property name="connection.url"> jdbc:oracle:thin:@localhost:1521:oracle11 </property> <!-- 数据库用户 --> <property name="connection.username">A_hr</property> <!-- 数据库用户密码 --> <property name="connection.password">123456</property> <!-- 数据库 JDBC 驱动 --> <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver </property> <!-- 是否将运行期生成的 SQL 输出到日志以供调试 --> <property name="show_sql">true</property> <!-- 每个数据库都有其对应的 Dialect 以匹配其平台特征 --> <property name="dialect"> org.hibernate.dialect.Oracle10gDialect </property> <property name="hbm2ddl.auto">create</property> <mapping resource="entity/Student2.hbm.xml" /> <mapping resource="entity/Teacher2.hbm.xml" /> </session-factory> </hibernate-configuration>
进行数据的操作
package test; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import entity.Student2; import entity.Teacher2; import util.HibernateSessionFactory; public class OneToMaryTest { public static void main(String[] args) { oneToMary(); } private static void oneToMary() { Session session = HibernateSessionFactory.getSession(); Transaction tx = null; Teacher2 teacher = new Teacher2("李炎恢"); Student2 student1 = new Student2("吴者然"); Student2 student2 = new Student2("何开"); try { teacher.getStudent2().add(student1); teacher.getStudent2().add(student2); tx = session.beginTransaction(); session.save(teacher); session.save(student1); session.save(student2); tx.commit(); System.out.println("保存成功!!!"); } catch (HibernateException e) { e.printStackTrace(); tx.rollback(); }finally{ HibernateSessionFactory.closeSession(); } } }
效果图:
在数据库查询这两条语句
select id, name from teacher2; select id, name, teacher2id from student2;
相关推荐
hibernate一对多案例,里边用到的jar包我上传过
hibernate一对多映射源代码 希望大家可以顶一下。。
Hibernate一对一,一对多,多对多实例
hibernate 一对多 增删改差
hibernate 一对多和多对一的理解 自己的个人看法 大家也来看看
加入了hibernate框架的javaWeb项目,里面包含了一对多的典型配置
Hibernate关于注解的一对多,多对多,一对一案例。。。。
Hibernate一对多实例,包括一对多插入,一对多查询。
Hibernate(一对多表操作)
hibernate实例(一对多,多对一)hibernate实例(一对多,多对一)hibernate实例(一对多,多对一)
hibernate一对多例子 一对多关联 通过外键 连接两个类对应的表,而没有中间集合表。 这个关系模型失去了一些Java集合的语义: 一个被包含的实体的实例只能被包含在一个集合的实例中 一个被包含的实体的实例只能...
两个实例开发项目。hibernate 一对多,两个实例项目
Hibernate 一对多、多对一、级联、加载、反转
Hibernate一对多映射
hibernate一对多的小案例,让你更好地掌握hibernate的一对多关系
Hibernate的多对一和一对多操作实例
Hibernate一对多双向自身关联demo代码
Hibernate 一对多 多对多 保证代码完整性,能够很好的理解之间的关系。
hibernate 一对多实例 hibernate关联表的映射文件一对多
Hibernate级联操作一对多demo Hibernate级联操作一对多demo Hibernate级联操作一对多demo