文件清单:
public Set<Teacher> getTeacs() {
publicvoid setTeacs(Set<Teacher> teacs) {
publicvoid setName(String name) {
publicvoid setClazz(Clazz clazz) {
publicvoid setName(String name) {
public Set<Student> getStus() {
publicvoid setStus(Set<Student> stus) {
publicvoid setName(String name) {
public Set<Student> getStus() {
publicvoid setStus(Set<Student> stus) {
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
package="com.xfimti.hiberante.beans">
<generator class="native"></generator>
<property name="name"></property>
<property name="age"></property>
<many-to-one name="clazz" column="clazz_id"></many-to-one>
<set table="stu_tea" name="teacs">
<key column="student_id"></key>
<many-to-many class="Teacher" column="teacher_id"></many-to-many>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
package="com.xfimti.hiberante.beans">
<generator class="native"></generator>
<property name="name"></property>
<set table="stu_tea" name="stus">
<key column="teacher_id"></key>
<many-to-many class="Student" column="student_id"></many-to-many>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
package="com.xfimti.hiberante.beans">
<generator class="native"></generator>
<property name="name"></property>
<set name="stus" inverse="true">
<one-to-many class="Student"/>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<property name="show_sql">true</property>
<property name="hibernate.format_sql">false</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.connection.driver_class">
<property name="hibernate.connection.url">
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
<mapping resource="com/xfimti/hiberante/beans/Student.hbm.xml" />
<mapping resource="com/xfimti/hiberante/beans/Clazz.hbm.xml" />
<mapping resource="com/xfimti/hiberante/beans/Teacher.hbm.xml" />
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
privatestatic SessionFactory sessionFactory = null;
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (HibernateException e) {
System.err.println("Initial SessionFactory creation failed." + e);
publicstatic Session getSession() {
returnsessionFactory.openSession();
import org.hibernate.HibernateException;
import org.hibernate.Transaction;
import com.xfimti.hiberante.beans.Clazz;
import com.xfimti.hiberante.beans.Student;
import com.xfimti.hiberante.beans.Teacher;
import com.xfimti.hibernate.util.HibernateUtil;
publicstaticvoid main(String[] args) {
/*List<Student> ss = getAllStudent(3);
System.out.println(ss.size());
Iterator<Student> its = ss.iterator();
System.out.println(s.getName()+","+s.getAge());
/*添加一个学生信息。他的老师是teacher1,所在班级为xxxxxx*/
String teacherName = "teacher1";
addStudent(s, clazzName, teacherName);
publicstatic Clazz getClazz(String name) {
Session s = HibernateUtil.getSession();
Query q = s.createQuery("from Clazz as c where c.name=?");
clazz = (Clazz) q.uniqueResult();
publicstaticvoid addStudent(Student stu,String clazzName) {
session = HibernateUtil.getSession();
tx = session.beginTransaction();
Clazz clazz = getClazz(clazzName);
} catch (HibernateException e) {
publicstaticvoid addClazz(Clazz clazz) {
session = HibernateUtil.getSession();
tx = session.beginTransaction();
} catch (HibernateException e) {
publicstatic List<Student> getAllStudent(int clazz_id) {
List<Student> ss = new ArrayList<Student>();
Session s = HibernateUtil.getSession();
Clazz clazz = (Clazz) s.get(Clazz.class, 3);
for (int i = 0; i < clazz.getStus().size(); i++) {
ss.add((Student)clazz.getStus().toArray()[i]);
publicstaticvoid addTeacher(Teacher t) {
session = HibernateUtil.getSession();
tx = session.beginTransaction();
} catch (HibernateException e) {
publicstaticvoid addStudent(Student s,String clazzName,String teacherName) {
ss = HibernateUtil.getSession();
Query q = (Query) ss.createQuery("from Clazz where name=?");
Clazz clazz = (Clazz) q.uniqueResult();
q = ss.createQuery("from Teacher where name=?");
Teacher t = (Teacher) q.uniqueResult();
/*将clazz和t设置到s,在处理持久化状态自动检测更改并修改。*/
Set<Teacher> st = new HashSet<Teacher>();
} catch (HibernateException e) {
相关推荐
以上就是关于Hibernate中一对一和一对多关联关系的基本知识及其配置示例。理解和熟练应用这些关联关系是提高Java应用程序数据库操作效率的关键。在使用Hibernate时,要灵活运用各种特性,以适应不同场景的需求,同时...
描述中的链接指向了一篇由“fangguanhong”在iteye博客上发表的文章,虽然具体内容没有提供,但我们可以根据标题推测该文章可能详细讲解了一个具体的Hibernate一对多关系的实现步骤和示例代码。 在Java的Hibernate...
hibernate一对多单项映射示例
本文将深入探讨Hibernate中的一对多、多对一、一对一以及多对多四种关系映射的配置实例,帮助开发者更好地理解和运用这些关系。 ### 一对多关系(One-to-Many) 在数据库设计中,一对多关系是最常见的一种关联,...
本示例主要关注的是Hibernate中的多对多关联映射及其添加与查询方法。 多对多关联是数据库设计中的一种常见关系类型,指的是两个实体之间可以存在多个对应关系。例如,在学生与课程的关系中,一个学生可以选修多门...
“Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...
本文将深入探讨Hibernate框架下“多对一”和“一对多”的关联关系,并通过一个具体示例来阐述其操作流程与实现细节。 ### Hibernate中的“多对一”和“一对多” 在数据库设计中,“多对一”(Many-to-One)和“一...
此外,还会有“一对多”和“多对多”的关系映射示例。在数据库中,这两个关系很常见,例如,一个学生可以有多门课程(一对多),而一门课程也可以被多个学生选修(多对多)。 “一对多”关系映射,通常在实体类中...
本文将深入探讨Hibernate中的一对多和多对一映射关系,并通过一个实际的demo演示它们在增删查改操作中的应用。 首先,我们要理解什么是数据库的关联关系。在数据库设计中,我们经常遇到一种情况,即一个实体可能与...
- **关联映射**: Hibernate 支持一对一、一对多、多对一、多对多等多种关联映射。 ### 总结 "hibernate完整小示例"是一个基础的教程,涵盖了配置、实体类、持久化操作和查询等关键点。通过这个示例,开发者能够...
这个压缩包文件“HibernateORM”很可能包含了关于如何在实际项目中设置和使用Hibernate一对多双向关联的示例代码、配置文件或者详细教程。通过学习这些材料,开发者能够深入理解如何在Java应用中利用Hibernate来处理...
本文将深入探讨“hibernate一对多双项映射”的概念,并通过一个示例来演示如何实现这一关系。这个示例中包含了数据库的DDL(Data Definition Language),意味着我们将看到创建表的SQL语句。 首先,一对多关系指的...
与一对多相反,多对一关系表示一个实体可以与多个其他实体相关联,例如每个员工属于一个部门。在Hibernate中,我们使用`@ManyToOne`注解来表达这种关系。同样,这个注解也有几个关键属性: 1. `targetEntity`:指定...
总结,Hibernate的多对多关系映射是数据库设计中非常重要的一个部分,它简化了Java对象与数据库表之间的交互。通过理解并实践案例,我们可以更深入地掌握这一特性,提高开发效率。在实际项目中,根据业务需求,合理...
标题"Hibernate双向一对多"指的是Hibernate框架中的一个重要关系映射概念,即在一个实体类中,一个实例可以与多个另一个实体类的实例相关联,而在另一个实体类中,每个实例也可以关联到该实体类的一个实例。...
`CH4Hibernate2`项目专注于使用Hibernate框架实现数据库中的一对多、多对一和多对多关系的增删改查操作。Hibernate作为Java领域中最流行的ORM(对象关系映射)框架,能够简化数据库操作,将SQL语句与Java代码分离,...
让我们深入了解一下这个简单的Hibernate多对多示例。 首先,我们需要定义两个实体类,例如`Student`和`Course`。在Hibernate中,这些类需要继承自`Serializable`接口,并使用`@Entity`注解标识为数据库表的对应类。...
- Hibernate_1to_many_2:这是关于一对多关联的示例,一个实体可以与多个其他实体相关联,例如一个部门可以有多个员工。 - Hibernate_1to1_pk2:这可能涉及使用主键外键实现一对一关联的示例。 - Hibernate_1to_many...
总之,Hibernate的一对一、一对多和多对多关系映射是Java开发中的重要概念,它们为对象模型提供了与数据库模型之间的桥梁。通过对这些关系的理解和实践,你可以更好地掌握Hibernate框架,从而在项目开发中发挥出更大...