面朝大海,春暖花开

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  12 Posts :: 1 Stories :: 3 Comments :: 0 Trackbacks

#

最近在读孙卫琴的《精通 Hibernate : JAVA 对象持久化技术详解》,深感 Hibernate 技术的灵活。当然,一个技术的灵活所带来的副面效应就是掌握它的难度随着灵活度的增加而增加。这本书是以 Hibernate2.0 蓝本讲解的,现在 Hibernate 已经发展到了 3.1 了。虽然现在显得有点过时了,但是 ORM 的思想还是一样的。以后的文章和代码都以 Hibernate3.1 为蓝本。

首先我们要解决一个问题就是,为什么我们要使用 Hibernate 技术。在 JAVA 世界中,已经有了由 SUN 提出的业界的标准 J2EE 规范,在规范中没有提到有 ORM 的影子,如果你说有的话,那也只是 CMP (容器 Bean )和 ORM 有些神似。但是毕竟 EJB 是个重量的东东,在你享受 EJB 带给你的种种优厚的待遇同时,你就不得不背负沉重的枷锁,这也就是为什么种种轻量级的框架在 JAVA 社区大行其道的原因之一。那么有没有一种方案使我们可以在不使用 EJB 的时候,还可以从容而且优雅的实现从对象到数据库的 mapping 呢?当然,那就是 Hibernate

在介绍 Hibernate 之前,首先让我们来看看软件的几种模型。

一、软件模型

l         概念模型:

概念模型清楚的描述出了问题域的实体。我们可以用一对一、一对多和多对多的关系来描述实体之间的关系。这种关系是技术人员和非技术人员都可以理解的,所以,我们要让客户或者领域专家帮助系统分析人员对概念模型中出现的问题做出修改。

l         关系数据模型:

当前的计算机只能用具有某种结构的形式来描述现实世界中的事物。从《数据结构》中我们知道,计算机世界中常用的数据结构有线形结构,树和图三大类结构。而表属于线形结构中的一种。计算机可以很方便的处理表这种结构的数据,所以,当前采用最广泛的还是关系型数据库(以后简称数据库)。

数据库通过用表,表的索引,视图和表与表之间的参照完整性来描述概念模型。

l         域模型和域对象:

我们需要在概念模型的基础上创建域模型,也叫做设计模型。域模型的主要内容有:

域对象:

域对象 (Domain Object) :是构成域模型的基本元素,代表业务中的人、事物等。分以下三种:实体域, J2EE 中的代表是实体 bean ;过程域, J2EE 中的代表是 Session bean 或者是消息驱动 Bean ;事件域,代表应用中的事件。

域对象之间的关系:

1 、关联

 一对多的单向关联
   
  一对多的双向关联

2 、依赖

如果存在 class A new class B ,就叫 A 依赖 B 。在实际的开发中,往往是过程域倚赖实体域。在 J2EE 的世界中,就是往往是由 Session Bean 来调用实体 Bean
   
3 、聚集: 描述整体和局部的关系。

4 、一般化

往往指类的继承关系

二、 ORM 介绍

ORM 的目的就是要把对象和关系的 mapping 。从上面的分析可以看出,二者的出发点是不同的,关系模型是面向关系的,域模型是面向对象的。它们的 mapping 如下:

面向对象

面向关系

对象

表中的记录

属性

表中的字段

 

三、 JAVA 世界中的其他持久化模式

1 、主动域对象模式

2 JDO 模式

3 CMP 模式(和 ORM 和类似,不过 CMP 是用在 EJB 容器当中,用来持久化 EJB 组件)。

posted @ 2006-04-06 21:07 面朝大海 阅读(197) | 评论 (0)编辑 收藏

     摘要: 在网上发现了这个,先收藏起来.插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/** *//** * @author treeroot * @since 2006-2-2 * @version 1.0 */public class InsertSort implements Sor...  阅读全文
posted @ 2006-04-05 22:16 面朝大海 阅读(267) | 评论 (0)编辑 收藏

仅列出标题
共2页: 上一页 1 2