例子:学生与老师的多对一
学生实体类
package entity; /** * Student 实体类 * */ public class Student { private int id;//编号 private String name;//姓名 private Teacher teacher;//用来作主外键约束的 /* * 构造方法 * */ public Student() { } public Student(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 Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } }
学生实体类的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.Student"> <id name="id"> <generator class="sequence"> <param name="sequence">seq_student</param> </generator> </id> <property name="name"></property> <many-to-one name="teacher" column="teacherid" class="entity.Teacher"></many-to-one> </class> </hibernate-mapping>
老师实体类
package entity; /** * Teacher 实体类 * */ public class Teacher { private int id;//编号 private String name;//姓名 /* * 构造方法 * */ public Teacher() { } public Teacher(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.Teacher"> <id name="id"> <generator class="sequence"> <param name="sequence">seq_teacher</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/Student.hbm.xml" /> <mapping resource="entity/Teacher.hbm.xml" /> </session-factory> </hibernate-configuration>
进行数据的操作
package test; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import entity.Student; import entity.Teacher; import util.HibernateSessionFactory; public class MaryToOneTest { public static void main(String[] args) { maryToOne(); } private static void maryToOne() { Session session = HibernateSessionFactory.getSession(); Transaction tx = null; Teacher teacher = new Teacher("李炎恢"); Student student1 = new Student("吴者然"); Student student2 = new Student("何开"); try { student1.setTeacher(teacher); student2.setTeacher(teacher); 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, teacherid from student; select id, name from teacher
相关推荐
Hibernate一对一,一对多,多对多实例
这里包含了hibernate多对一单向关联关系实现源码,希望对你有用。
Hibernate关于注解的一对多,多对多,一对一案例。。。。
Hibernate的多对一和一对多操作实例
hibernate 一对多和多对一的理解 自己的个人看法 大家也来看看
hibernate多对一映射(XML)版
hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系
hibernate一对多案例,里边用到的jar包我上传过
hibernate一对一实例
加入了hibernate框架的javaWeb项目,里面包含了一对多的典型配置
hibernate框架一对一测试案例,第四篇,使用于新手
hibernate实例(一对多,多对一)hibernate实例(一对多,多对一)hibernate实例(一对多,多对一)
Hibernate级联操作一对多demo Hibernate级联操作一对多demo Hibernate级联操作一对多demo
hibernate多对多关系映射案例,配有对应的jar包。
hibernate基于 一对多、多对一映射写的一个增加,查询,删除,修改的demo,内附数据库脚本
Hibernate多对多关联添加及查询示例
后面的hibernate代码,我会慢慢的上传上去,这些资源都是免费的,希望可以帮到大家。
Hibernate多对一映射(注解版)
Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向关联 Hibernate 一对一外键双向关联 Hibernate 一对一主键双向关联 Hibernate 一对一连接表双向关联 Hibernate 一对多外键双向...