一 Grade
package com.imooc.entity;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class Grade implements Serializable {
private int gid;
private String gname;
private String gdesc;
private Set<Student> students =new HashSet<Student>();
public int getGid() {
return gid;
}
public void setGid(int gid) {
this.gid = gid;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public String getGdesc() {
return gdesc;
}
public void setGdesc(String gdesc) {
this.gdesc = gdesc;
}
public Grade() {
super();
}
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
public Grade(int gid, String gname, String gdesc) {
super();
this.gid = gid;
this.gname = gname;
this.gdesc = gdesc;
}
public Grade(String gname, String gdesc) {
super();
this.gname = gname;
this.gdesc = gdesc;
}
}
二 Student
package com.imooc.entity;
import java.io.Serializable;
public class Student implements Serializable {
private int sid;
private String sname;
private String sex;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Student() {
super();
}
public Student(String sname, String sex) {
super();
this.sname = sname;
this.sex = sex;
}
}
三 Grade.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<hibernate-mapping>
<class name="com.imooc.entity.Grade" table="grade">
<id name="gid" column="gid" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="gname" type="java.lang.String">
<column name="gname" length="20" not-null="true"></column>
</property>
<property name="gdesc">
<column name="gdesc"></column>
</property>
<!-- 配置一对多关联关系 -->
<set name="students" table="student">
<key column="gid"></key>
<one-to-many class="com.imooc.entity.Student"/>
</set>
</class>
</hibernate-mapping>
四 Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<hibernate-mapping>
<class name="com.imooc.entity.Student" table="student">
<id name="sid" column="sid" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="sname" type="java.lang.String">
<column name="sname" length="20" not-null="true"></column>
</property>
<property name="sex">
<column name="sex"></column>
</property>
</class>
</hibernate-mapping>
五 hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">
<![CDATA[
jdbc:mysql://localhost:3306/imooc?useUnicode=true&characterEncoding=utf8
]]>
</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<!-- 指定映射文件的路径 -->
<mapping resource="com/imooc/entity/Grade.hbm.xml"/>
<mapping resource="com/imooc/entity/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
六 set元素的常用属性
相关推荐
在映射文件中,我们为`Qx`和`Jd`类分别定义了多对一和一对多的映射。 通过学习和实践这些关联映射,我们可以更有效地使用Hibernate来管理Java应用程序中的数据库交互,提高开发效率和代码可维护性。
// 这里是关键的注解,指定与Department的单向一对多关系 @ManyToOne @JoinColumn(name = "department_id") private Department department; // getter和setter方法... } ``` 在这里,`@ManyToOne`表示一个...
在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,它反映了数据库中一个表的记录可以对应多个另一个表的记录的情况。本篇主要探讨的是如何在Hibernate中实现一对多的单向关联映射。 一、概念理解 ...
3. `@JoinColumn`: 定义一对一或一对多关系中的外键字段,这里用在`@JoinTable`中,表示多对多关系的连接表中外键的属性。 在上述代码中,`Student`实体有一个`courses`集合,它包含了与之关联的所有`Course`实体。...
在本主题"Hibernate单向一对多关联映射(XML版)"中,我们将深入探讨如何使用XML配置来实现数据库中一个实体类对应多个实体类的关联关系。 在Hibernate中,一对多关联是一种常见的关系映射类型,它反映了数据库中的...
在Java的持久化框架Hibernate中,多对一(ManyToOne)关联关系是一种常见的对象关系映射(ORM)场景。这种关系通常出现在一个实体类拥有多条与另一个实体类相关的记录,而另一个实体类可能只有一条对应的记录。例如...
2. **集合映射**:通过一对多、多对一、多对多等关联关系,将集合属性与数据库表建立联系。 3. **排序集合**:对于需要按特定顺序存储的集合,可以使用排序集合(Sorted Collection)。 4. **双向关联**:在实体类...
在Java的持久化框架Hibernate中,一对多关联映射是一种常见的关系映射方式,它用于表示一个实体(如用户)可以拥有多个关联实体(如订单)。在这个场景中,"一"通常代表父实体,"多"代表子实体。这篇博客文章...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系数据库模型在对象模型中的体现。这种关联通常用于表示两个实体之间非常特殊的联系,比如一个人只有一个身份证,或者一个公司只有一个总部...
本实例主要探讨的是Hibernate的高级映射技术,包括单向一对一、单向多对一、单向一对多以及单向多对多这四种关系映射。 首先,我们来理解一下什么是映射。在Hibernate中,映射是将对象模型与关系数据库之间的桥梁,...
在选课系统中,一个教师可以教多个课程,形成一对多关系。这种关系可以是单向或双向的。单向关联意味着只从一个方向访问关联对象,例如,只需要从Course对象获取任教的Teacher对象,那么只需在Course.hbm.xml中添加`...
“Hibernate基于外键的一对多单向关联”这个标题指的是在Java持久化框架Hibernate中,如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到...
实体关联关系映射涉及一对一、一对多、多对多等多种形式,而这些映射方式又可以分为单向和双向,依据使用的是主键还是外键,以及是否使用连接表。接下来,我们详细介绍这些知识点。 ###Hibernate实体关联关系映射...
本项目“Hibernate学习:单向多对一关联 工程”专注于讲解Hibernate中的单向多对一关联映射,这是数据库设计中常见的关系类型,尤其在处理具有层次结构的数据时。 单向多对一关联指的是在一个实体类中有一个引用,...