论坛首页 入门技术论坛

java对象持久化技术概述

浏览 1736 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-06-09   最后修改:2009-08-14
hibernate是什么?
1>它是连接java应用程序和关系数据库的中间件
2>它对jdbc api进行了封装,负责java对象的持久化
3>在分层的软件架构中它位于持久层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑.
4>它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射.

应用软件的三层结构:
1>表述层:提供与用户交互的界面
2>业务逻辑层:实现各种业务逻辑
3>数据库层:负责存放和管理应用的持久性数据.

区分物理层和逻辑层:
软件的分层包含两种含义,一种是物理分层,即每一层都运行在单独的机器上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块中完成特定的功能.

软件层的特征:
1>每个层由一组相关的类或组件构成,共同完成特定的功能
2>层与层之间存在自上而下的依赖关系,即上层组件会访问下层组件的API,而下层组件不应该依赖上层组件.
3>每个层对上层公司API,但具体的实现细节对外透明.

软件分层的优点:
1>伸缩性:是指应用程序是否能支持更多的用户.
2>可维护性:可维护性指的是当发生需求的变化,只需修改软件的某一部分.
3>可扩展性:可扩展性指的是在现有系统中增加新功能的难易程度.层数越少,增加新功能就容易破坏现有的程序结构.层数越多,就可以在每个层中提供扩展点,不会打破应用的整体框架.
4>可重用性:是指程序代码没有冗余,同一个程序能满足多种需要.
5>可管理性:是指管理系统的难易程序.

完善的持久化层应该达到以下目标:
1>代码可重用性高,能够完成所有的数据库访问操作.
2>如果需要的话,能够支持多种数据库平台.
3>具有相对独立性,当持久层的实现发生变化,不会影响上层的实现.

透明与封装具有同样的含义,软件的透明性是通过封装实现细节来达到的.

软件的模型:
1>概念模型,在建立模型之前,首先要对问题域进行详细的分析,确定用例,接下来就可以根据用例来创建概念模型.概念模型用来模拟问题域中的真实实体,概念模型描述了每个实体的概念和属性,以及实体之间的关系.在这个阶段,并不描述实体的行为.创建概念模型的目的是帮助更好地理解问题域,识别系统中的实体,这些实体在设计阶段有可能变为类.

2>关系数据模型,到目前为止,关系数据库仍然是使用最广泛的数据库,它存储的是关系数据.关系数据模型是在概念模型的基础上建立起来的,用于描述这些关系数据的静态结构,它由以下内容组成:
   <1>一个或多个表
   <2>表的所有索引
   <3>视图
   <4>触发器
   <5>表与表之间的参照完整性

3>域模型,是在软件分析阶段创建的,它帮助开发人员对应用的需求获得清晰精确的理解.在软件设计阶段,需要在概念模型的基础上创建域模型,域模型是面向对象的,在面向对象术语中,域模型也可称为设计模型,域模型以下内容组成,一.具有状态和行为的域对象.二.域对象之间的关系.

4>域对象,构成域模型的基本元素是域对象.域对象,即Domain Object,是对真实世界的实体的软件抽象.域对象还可叫做业务对象,即Business Object(BO).域对象可以代表业务领域中的人,地点,事物或概念.域对象分为以下几种.
<1>实体域对象,要算是最为人熟悉的.实体对象可以代表人,地点,事物或概念.通常,可以把业务领域中的名词作为实体对象.为了使实体域对象与关系数据库中的记录对应,可以为每个实体域对象分配唯一的OID(Object Identifier,即对象标识符),OID是关系数据库表中的主键(通常为代理主键)在实体域对象中的等价物.
<2>过程域对象,代表应用中的业务逻辑或流程.它们通常依赖于实体域对象.可以把业务领域中的动词作为过程域对象.
<3>事件域对象,代表应用中的一些事件(如异常,警告或超时).这些事件通常由系统中的某种行为触发.

在三层应用结构中,以上三种域对象都位于业务逻辑层,实体域对象是应用的业务数据在内在中表现形式,而过程域对象用于执行业务逻辑.

域对象之间的关系
1>关联(Association)
关联指的是类之间的引用关系,这是实体域对象之间最普遍的一种关系.关联可分为一对一,一对多,多对多关联.
2>依赖(Dependency)
依赖指的是类之间的访问关系.如果类A访问类B的属性或方法,或者类A负责实例化类B,那么可以说类A依赖类B.和关联关系不同,无需把类B定义为类A的属性.依赖关系在实体域对象之间不常见,但是过程域对象往往依赖实体域对象,因为过程域对象会创建实体域对象,或者会访问实体域对象的属性及方法.
3>聚集(Aggregation)
聚集指的是整体与部分之间的关系.聚集关系与关联关系在类的定义上有相同的形式,不过两者有不同的语义,对于聚集关系,部分类的对象不能单独存在,它的生命同期依赖于整体的对象的生命周期.当整体消失,部分也就随之消失.而对于存在关联关系的两个类,可以允许每个类的对象都单独存在.
4>一般化
一般化指的是类之间的继承关系.

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics