hibernate的一对多的写法或者多对一的写法(xml文件配法)

来源:互联网 发布:什么叫九宫格算法 编辑:程序博客网 时间:2024/06/01 19:15

下面是班级表和学生表的一对多的关系

班级实体

public class Clazz implements java.io.Serializable {    private Integer cid;    private String cname;    //学生表想    private Set<Student> Students=new HashSet<Student>();    public Clazz() {    }    public Clazz(String cname) {        this.cname = cname;    }    public Integer getCid() {        return this.cid;    }    public void setCid(Integer cid) {        this.cid = cid;    }    public String getCname() {        return this.cname;    }    public void setCname(String cname) {        this.cname = cname;    }    public Set<Student> getStudents() {        return Students;    }    public void setStudents(Set<Student> students) {        Students = students;    }}

学生表的实体

public class Student implements java.io.Serializable {    private Integer sid;    private String sname;    private Integer sage;    //这个是学生表,学生表相对于班级表是多对一的关系,所以要在学生表中创建一个班级的对象    private Clazz clazz;    public Student() {    }    public Student( String sname, Integer sage) {        this.sname = sname;        this.sage = sage;    }    public Integer getSid() {        return this.sid;    }    public void setSid(Integer sid) {        this.sid = sid;    }    public String getSname() {        return this.sname;    }    public void setSname(String sname) {        this.sname = sname;    }    public Integer getSage() {        return this.sage;    }    public void setSage(Integer sage) {        this.sage = sage;    }    public Clazz getClazz() {        return clazz;    }    public void setClazz(Clazz clazz) {        this.clazz = clazz;    }}

班级:Clazz.hbm.xml文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="com.sxt.beans.Clazz" table="Clazz">        <id name="cid">            <generator class="identity"></generator>        </id>        <property name="cname"></property>        <!--- 这个是班级表,是一的那一方,要配置一个多的那一方的set集合,Students就是这个实体bean里面的set集合的名字 -->        <set name="Students">        <!-- column是所这个bean对应的表的自增长id -->            <key column="cid"></key>            <!-- class是所对应的那个多的那一方的那个bean的地址 -->            <one-to-many class="com.sxt.beans.Student" />        </set>    </class></hibernate-mapping>

学生:Student.hbm.xml文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="com.sxt.beans.Student" table="Student">        <id name="sid" column="sid">            <generator class="identity"></generator>        </id>        <property name="sname"></property>        <property name="sage"></property>        <!-- 这个是学生表,是多的那一方 name 在这个bean里面的对象的名称 column是所对应的那个表的自增长字段  class是所对应的那个一的那个的bean的地址 -->        <many-to-one name="clazz" column="cid" class="com.sxt.beans.Clazz" ></many-to-one>    </class></hibernate-mapping>

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><!-- 引入头部文件 --><!-- 这个是hibernate的配置文件 --> <!-- 配置会话工厂 --><hibernate-configuration>    <session-factory>        <!-- 驱动名称 下面这个配置的是mysql的 -->        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        <!-- URL -->        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sxt</property>        <!-- 用户名 -->        <property name="hibernate.connection.username">root</property>        <!-- 密码 -->        <property name="hibernate.connection.password">123456</property>        <!--方言:hibernate根据方言类将对象"翻译"成相对于的sql语句,因为每个数据库的sql语句有的不同,所以这边声明用的哪个的数据库的哪个版本,然后会根据你的声明生成对应的sql语句 -->        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>        <!-- 是否打印生成的sql语句 -->        <property name="hibernate.show_sql">true</property>        <!-- 引入配置文件-->        <mapping resource="com/sxt/beans/Role.hbm.xml" />        <mapping resource="com/sxt/beans/User.hbm.xml" />    </session-factory></hibernate-configuration>

这样多对一的xml配置就完成了

原创粉丝点击