`
jackmisweijie
  • 浏览: 71393 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

第八章 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机仍然可以独立存在,也就是说在系统中可以直接访问显示器对象,那么你可以将关系设为聚合(如你在为一个买散件的代理商作系统你可能是可以这么作的)
以下部分以后在写.....
分享到:
评论

相关推荐

    Hibernate3开发.pdf

    第一章:Hibernate入门 包括:是什么、ORMapping原理、能干什么、有什么、怎么做(做什么) 第二章:Hibernate的HelloWorld 第三章:Hibernate的配置 包括:cfg配置、mapping配置、组件映射、事务配置、缓存配置 ...

    Java Web程序设计教程4

    第8章 hibernate框架基础 173 第9章 hibernate查询 188 第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与...

    Java Web程序设计教程2

    第8章 hibernate框架基础 173 第9章 hibernate查询 188 第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与...

    Java Web程序设计教程1

    第8章 hibernate框架基础 173 第9章 hibernate查询 188 第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与...

    Java Web程序设计教程3

    第8章 hibernate框架基础 173 第9章 hibernate查询 188 第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与...

    Java Web程序设计教程5

    第8章 hibernate框架基础 173 第9章 hibernate查询 188 第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与...

    spring2.0技术手册 (扫描版)

    第8章View层方案、Web框架整合 第9章API封装 第10章项目:Spring在线书签 Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本 喜欢...

    oracle 入门很简单.zip

    第8章Oracle中的日期型ppt 第9章Oracle中的复杂数据处理ppt 第10章Oracle中的控制语句.ppt 第11章视图ppt 第12章约速ppt 第13章游标pp 第14章触发器ppt 第15章序列.ppt 第16章用户、角色与权限控制。ppt 第17章函数...

    Hibernate+中文文档

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

    HibernateAPI中文版.chm

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

    hibernate3.2中文文档(chm格式)

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    第八章 JUnit使用指南 8.1 JUnit介绍 8.1.1 JUnit简介 8.1.2 为什么要使用JUnit 8.2 建立JUnit的开发环境 8.2.1 下载JUnit 8.2.2 配置JUnit 8.3 JUnit的使用方法 8.3.1 继承TestCase 8.3.2 编写测试方法 8.3.3 编写...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    第八章 JUnit使用指南 8.1 JUnit介绍 8.1.1 JUnit简介 8.1.2 为什么要使用JUnit 8.2 建立JUnit的开发环境 8.2.1 下载JUnit 8.2.2 配置JUnit 8.3 JUnit的使用方法 8.3.1 继承TestCase 8.3.2 编写测试方法 8.3.3 编写...

    Hibernate中文详细学习文档

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...

    Hibernate 中文 html 帮助文档

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

    Hibernate教程

    2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. Hibernate配置 2.2.4. 用Ant编译 2.2.5. 安装和帮助 2.2.6. 加载并存储对象 2.3. 第二部分 ...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 Struts 2的国际化入门,...

    Spring3 MVC +HibernateJPA Eclipse Demo

    希望大家能借着这个示例早日进入SpringMVC+Hibernate-JPA的大门,让 SpringMVC fans早点入门 5、spring:3.1.1 hibernate:4.1.6 Hibernate-JPA:2.0 6、若更换数据库后代码有误,无法调通,请先运行com.web.test...

Global site tag (gtag.js) - Google Analytics