第八章 Hibernate的入门

简介:
注:希望大家看后,请给我一点评价,无论写的怎么样,希望你们能给我支持。提出你宝贵的意见。我会继续完善。谢谢您。朋友。
   今天又很高兴可以和大家一块探讨一下有关hibernate的知识,好长时间没有写关于hibernate的文章了。今天就主要讲述一下hibernate的核心知识。
第八章 Hibernate的入门
O/R Mapping基础

1、模型

1)模型用来表示真实世界的实体

在科学和工程技术领域,模型是一个很有用途的概念,它可以用来模拟一个真实的系统。在软件开发领域,模型用来表示真实世界的实体。

2)不同类型的模型

在软件开发的不同阶段,需要为目标系统创建不同类型的模型。

l   在分析阶段----需要创建概念模型

l   在设计阶段----需要创建域模型和数据模型

ü   其中,域模型是面向对象的,数据模型是面向关系的

ü   域模型和数据模型之间存在一种对象-关系映射。

 

3)概念模型

l  概念模型清楚地显示了问题域中的实体

不管是技术人员还是非技术人员都能看得懂概念模型,他们可以很容易地提出模型中存在的问题,帮助分析人员及早对模型进行修改。

在软件设计域开发周期中,模型的变更需求提出得越晚,所耗费得开发成本就越大。

l  概念模型描述了每个实体的概念和属性,以及实体之间的关系:一对一、一对多和多对多

在现实生活中都可以找到相应的例子,例如一只母鸡有很多小鸡是一对多关系,一位客户选购了很多商品,而这些商品也可以被许多客户选购,这是多对多关系。

4)关系数据模型

    到目前为止,关系数据库仍然是使用最广泛的数据库,它存储的是关系数据。关系数据模型是在概念模型的基础上建立起来的,用于描述这些关系数据的静态结构,它由以下内容组成:

l   一个或多个表

l   表的所有索引

l   视图

l   触发器

l   表与表之间的参照完整性

5)域模型

    域模型由以下内容组成:具有状态和行为的域对象;域对象之间的关系。

2、域对象

1)实体域对象

代表人、地点、事物或概念。通常,可以把业务领域中的名词,例如客户、订单、商品,当然也包括前面提到过的母鸡,作为实体域对象;

2)过程域对象

代表应用中的业务逻辑或流程。它通常依赖于实体域对象。

3)事件域对象

代表应用中的一些事件,例如异常、警告或超时等。

 

3、域对象之间的关系

    在域模型中,类之间存在下面的的几种关系。

1)关联(Association)

关联指的是类之间的引用关系(它使一个类指到另一个类的属性),这是实体域对象之间最普遍的一种关系。关联可以分为一对一、一对多和多对多关联。

2)依赖(Dependency)

依赖指的是类之间的访问关系。如果类A访问类B的属性或方法,或者说是A负责实例化B,那么可以说类A依赖类B

依赖对象通过调用被依赖对象的方法来获得服务。一种比较松散的关系,并且是短期的。我们的业务处理过程与对象往往依赖于我们的实体域对象。如在struts  action中调用模型层的方法。

3)聚集(Aggregation)

聚集指的是整体与部分之间的关系,在实体域对象之间也很常见。其实聚合关系是关联关系的一种,是强的关联关系。聚合同时也体现整体和部分之间的关系。

例如,人与手就是聚集关系,在Person类中由一个hands集合,它存放被聚集的Hand对象:

public class Person

{

      private Set hands = new HashSet();

      …………

}

4)组合

也叫合成关系,组成关系是关联关系的一种,是比聚合关系强的关系。对象负责代表部分的对象的生命周期。

5)一般化(Generalization)

    一般化指的是类之间的继承关系。

4、既然聚合,组合关系属于关联关系,那么如何区分一般关联关系,聚合关系和组合关系呢?

1)一般关联

只要一个对象联系到另外一个对象就形成了关联关系。如:人和他的猫,黑豹乐队和窦魏,pc机和显示器。

2)聚合关系

一种强关联关系,它要求有部分和整体的关系,并且没有了整体,部分也可以独立存在。

在上面例子中人和它的猫显然没有部分和整体的关系,所以只能是一般的关联关系。而黑豹乐队和窦魏,窦魏等人组成,了黑豹乐队即:窦魏和黑豹是整体和部分的关系。而窦魏脱离了黑豹(早就离开了)更或者黑豹不存在了那么窦魏仍然可以以音乐人的身份存在(即对象仍然可以独立存在)所以它属于聚合关系。

组成关系是可以共享的。(窦魏也可以加入其他乐队)。

3)组合关系

一种更强的整体和部分的关系。它并且要求代表整体的对象负责代表部分的对象的生命周期,组成关系是不能共享的。如:pc机和显示器的关系。

4)注意的问题

如果两个实体是整体和部分的关系,那么它们到底是聚合还是组合,这取决于你的需求。比如说:pc机和显示器的关系,如果你的系统中,显示器脱离了pc机就不存在意义了也可以说:所有显示器的访问都是通过pc机进行的,那么你可以把关系设定为组合(如你在为一个只买品牌机的代理商作系统你可能是可以这么作的)。

如果你的显示器脱离的pc机仍然可以独立存在,也就是说在系统中可以直接访问显示器对象,那么你可以将关系设为聚合(如你在为一个买散件的代理商作系统你可能是可以这么作的)

以下部分以后在写.....









本文转自 weijie@java 51CTO博客,原文链接:http://blog.51cto.com/weijie/66460,如需转载请自行联系原作者
目录
相关文章
|
SQL XML Java
一篇文章让你马上入门Hibernate
一篇文章让你马上入门Hibernate
|
2月前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
63 0
|
4月前
|
Java 数据库连接
杨老师课堂之JavaEE三大框架Hibernate入门第一课
杨老师课堂之JavaEE三大框架Hibernate入门第一课
26 0
|
5月前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
5月前
|
SQL Java 数据库连接
Hibernate - 基础入门详解
Hibernate - 基础入门详解
100 1
|
5月前
|
SQL 缓存 Java
Hibernate - 检索策略入门与详解
Hibernate - 检索策略入门与详解
48 0
|
SQL XML Java
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
|
SQL Java 数据库连接
hibernate入门学习笔记
hibernate入门学习笔记
78 0
|
存储 SQL Java
Hibernate入门实例
Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
Hibernate入门实例
|
SQL 设计模式 缓存
【框架】[Hibernate]构架知识点详解入门与测试实例
【框架】[Hibernate]构架知识点详解入门与测试实例
114 0
【框架】[Hibernate]构架知识点详解入门与测试实例