Hibernate实现many-to-many的映射关系

来源:互联网 发布:淘宝企业店铺登陆 编辑:程序博客网 时间:2024/06/05 17:44


(1)一个最简单的例子就是学生选课的数据表了


(2)Student.java

public class Course {private Integer id;private String name;private Set<StuCourse> stuCourses;//get/set方法}

(3)Student.java

public class Student {private Integer id;private String name;private Set<StuCourse> stuCourses;<span style="font-family: Arial, Helvetica, sans-serif;">//get/set方法</span>}
(4)StuCourse.java学生选课表

package com.hsp.domain;public class StuCourse {private Integer id;private Student student;private Course course;private Integer grade;//get/set方法}

(5)Course.hbm.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 package="com.hsp.domain"><class name="Course"><id name="id" type="java.lang.Integer"><generator class="sequence"><param name="sequence">course_seq</param></generator></id><property name="name" type="java.lang.String"><column name="name" length="64" /></property><!-- 配置one-to-many 表示一门课程可以对应多个选课记录 --><set name="stuCourses"><key column="course_id" /><one-to-many class="StuCourse" /></set></class></hibernate-mapping>

(6)Student.hbm.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 package="com.hsp.domain"><class name="Student"><id name="id" type="java.lang.Integer"><generator class="sequence"><param name="sequence">stu_seq</param></generator></id><property name="name" type="java.lang.String"><column name="name" length="64" /></property> <!-- 这里我们配置了one-to-many 一个学生可以对应多个选课记录 --><set name="stuCourses"><key column="student_id" /> <!-- 这里的column是外键 --><one-to-many class="StuCourse" /> <!-- many所对应的表 --></set></class></hibernate-mapping>

(7)StuCourse.hbm.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 package="com.hsp.domain"><class name="StuCourse"><id name="id" type="java.lang.Integer"><generator class="sequence"><param name="sequence">stucourse_seq</param></generator></id><property name="grade" type="java.lang.Integer"><column name="grade" length="3" /></property><many-to-one name="course" column="course_id" /><many-to-one name="student" column="student_id" /></class></hibernate-mapping>

(8)hibernate.cfg.xml文件

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="connection.username">root</property><property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:OracleDB</property><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><property name="connection.password">root</property><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="show_sql">true</property><!-- 配置让hibernate自动创建关系模型(表) --><property name="hbm2ddl.auto">update</property><mapping resource="com/hsp/domain/Course.hbm.xml" /><mapping resource="com/hsp/domain/StuCourse.hbm.xml" /><mapping resource="com/hsp/domain/Student.hbm.xml" /></session-factory></hibernate-configuration>






3 0
原创粉丝点击