面朝大海,春暖花開

            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 面朝大海 閱讀(210) | 評論 (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 面朝大海 閱讀(289) | 評論 (0)編輯 收藏

          僅列出標題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 芮城县| 同心县| 隆尧县| 安丘市| 松滋市| 承德县| 苍梧县| 麦盖提县| 荣成市| 革吉县| 长白| 巩留县| 鄯善县| 玛沁县| 泾阳县| 册亨县| 达州市| 沙洋县| 政和县| 介休市| 昂仁县| 梅州市| 德兴市| 浮山县| 纳雍县| 阜新市| 西和县| 高密市| 赤城县| 成武县| 永靖县| 五台县| 慈利县| 灵台县| 页游| 建湖县| 柘荣县| 颍上县| 南昌县| 农安县| 合肥市|