Hibernate单向多对一配置:
多对一它的思想是在多的一方设置一的对象作为其属性。
比如学生和所在的班级为例。学生是多的一方,班级是一的一方。只要在学生类里面设置班级类的对像就完成了学生与班级之间的关联关系。
以学生和所在班级为例,这两个类是这样的:
班级类(是一的一方):
package com.ye.models; /** * 类功能简单描述:这个是单向的多对一映射<BR/> * 类名:Class<BR/> * 作者yenairong<BR/> * 时间:2014年11月17日 下午1:00:17<BR/> * @version 1.0.0 <BR/> */ public class Class { private int classId; private String className; //set get方法 public int getClassId() { return classId; } public void setClassId(int classId) { this.classId = classId; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } }
学生类是这样的(多的一方):
package com.ye.models; public class Student { private int stuId; private String studName; private Class stuClass; //这里设置的是多对一。学生是多,班级是多 public int getStuId() { return stuId; } public void setStuId(int stuId) { this.stuId = stuId; } public String getStudName() { return studName; } public void setStudName(String studName) { this.studName = studName; } public Class getStuClass() { return stuClass; } public void setStuClass(Class stuClass) { this.stuClass = stuClass; } }
接下来配置相应的hbm.xml文件。班级的映射文件是这样的:
这个跟平常的映射没有什么不同。
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!--如果让hibernate自动创建表结构,则column是什么。数据库里 面生成的就是对应的column的属性值,table对应于数据库的表名--> <class name="com.ye.models.Class" table="c_table"> <id name="classId" type="int"> <column name="class_id" /> <generator class="native"><!--因为使用的是MySql5.7版,它的主键生成策略是native--> </generator> </id> <property name="className" type="java.lang.String"> <column name="class_name" /> </property> </class> </hibernate-mapping>
学生的映射文件是这样的:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- name对应于实体类里面的属性。column是数据库里面的的列名(不写情况是跟属性名一致) --> <class name="com.ye.models.Student" table="c_student"> <id name="stuId" type="int"> <column name="stu_id" /> <generator class="native"> </generator> </id> <property name="studName" type="java.lang.String"> <column name="stu_name" /> </property> <!-- 在这里配置多对一 ,class指定引用的类。column是对应于数据库里面的列名,如果让hibernate自动创建表结构,则column是什么。数据库里 面生成的就是对应的column的属性值--> <many-to-one name="stuClass" column="stu_class" class="com.ye.models.Class" ></many-to-one> </class> </hibernate-mapping>
之后配置配置文件:它的结构是:
<?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"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.password">123456</property> <property name="hibernate.connection.url">jdbc:mysql:///test</property> <property name="hibernate.connection.username">root</property> <!-- 数据库方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 是否显示sql语句 --> <property name="show_sql">true</property> <!-- 是否自动生成表结构,它有四个属性,一般常用的就是update --> <property name="hbm2ddl.auto">update</property> <!-- 映射文件 --> <mapping resource="com/ye/models/Class.hbm.xml"/> <mapping resource="com/ye/models/Student.hbm.xml"/> </session-factory> </hibernate-configuration>
这样子的
相关推荐
Hibernate 多数据库配置 在 Hibernate 中配置多数据库,并自由切换,可以使用 Spring 框架来实现。下面是一个简单的配置示例: 首先,创建一个父数据源(parentDataSource),用于配置多个数据源共有的信息: ```...
1. **配置一对多关系**: - 在实体类中,我们需要定义一个集合类型的属性,比如`List<Order>`,表示一个用户可以有多个订单,使用`@OneToMany`注解标记这个属性。该注解接受一个`mappedBy`参数,指定多的一方在关联...
本文将深入探讨Hibernate中的多对一映射关联配置,并结合具体的文档心得进行讲解。 首先,我们要了解多对一映射的基本概念。在数据库设计中,如果一个表(实体A)的某一列是另一个表(实体B)的主键,那么就存在...
在本篇中,我们将深入探讨Hibernate的配置,特别是涉及一对一、一对多和多对多关系的配置。 首先,配置过程始于`Configuration`接口。这个接口用于设置Hibernate所需的配置信息,如数据源、连接参数等,并根据配置...
下面是一个使用 properties 文件配置 Hibernate 连接数据库的示例: hibernate.connection.driver_class = org.hsqldb.jdbcDriver hibernate.connection.username = sa hibernate.connection.password = hibernate....
本篇将深入探讨Hibernate的一级缓存和二级缓存,以及查询缓存的配置和使用。 ### 一级缓存 一级缓存是Hibernate默认提供的缓存,它是Session级别的,每个Hibernate Session都有一个私有的、本地的一级缓存。当我们...
Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面我们将详细介绍 Hibernate 配置文件的结构和内容。 一、hibernate.cfg.xml 文件 hibernate.cfg.xml 文件是 Hibernate 的基本配置...
- **性能调优**:通过对Hibernate配置参数进行调优,比如设置合理的缓存策略、调整查询参数等,可以进一步提升系统的响应速度。 #### 四、总结 Spring与Hibernate的整合是现代Java企业级应用开发中的常见模式。...
2. Hibernate配置文件(hibernate.cfg.xml): - 数据库连接配置:包括数据库URL、用户名、密码、驱动类名等,这些信息定义了应用程序如何连接到数据库。 - 映射文件引用:通过`<mapping resource=""/>`标签,指定...
5. **缓存配置**:Hibernate支持一级缓存(Session级别)和二级缓存(SessionFactory级别)。开发者可以根据需求选择是否开启及配置二级缓存,例如,可以使用EhCache或Infinispan。 6. **事务管理**:Hibernate支持...
Hibernate配置文件hibernate.cfg.xml中配置信息详解!
这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利搭建并运行一个简单的Hibernate项目。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它的主要功能是将Java对象与数据库表进行映射,从而避免了...
这些配置选项只是`hibernate.properties`中的一部分,实际使用时可能还需要根据项目需求配置更多的参数。理解并正确配置这些参数对于优化Hibernate性能、保证数据一致性以及简化开发流程至关重要。通过调整这些配置...
2.2、打开此文件,将“<property name="hibernate.connection.url">jdbc:sqlite:D:/EGSDatabase.egsdata”一行中的数据库文件("D:/EGSDatabase.egsdata")修改为合适的数据库文件。 注:附件包含了...
“Hibernate 一对一,一对多,多对多例子” 指的是使用Hibernate框架实现数据库中不同关联关系的示例。Hibernate是一个Java持久化框架,它提供了对象关系映射(ORM)功能,使得开发人员可以方便地在Java对象和关系...
通过这个实例,你将掌握在Java项目中使用Hibernate的基本流程,无论是普通Java工程还是Maven工程,都能轻松实现对数据库的操作。在实际开发中,你可以根据项目需求进一步优化配置,比如加入事务管理、查询优化等,以...
3. 创建Hibernate配置文件。通常该文件命名为hibernate.cfg.xml,并放置在项目的src目录下。配置文件中需要声明以下关键内容: - 数据库方言(Dialect):指定Hibernate针对哪种数据库优化其SQL语句。 - 连接...
`hibernate1.cfg.xml`是Hibernate配置的核心文件,它定义了数据源、连接池、持久化类、缓存策略等关键信息。以下将逐个解析这些重要部分。 1. 数据源配置: 在`hibernate1.cfg.xml`中,首先需要配置数据源。对于...
### Hibernate自动生成配置文件详解 #### 一、Hibernate与自动生成配置文件的重要性 ...因此,掌握并熟练运用MyEclipse中Hibernate配置文件的自动生成功能,对任何级别的Java开发者来说都是一项极为有价值的技能。