數據持久化

對象持久化:
    1.   ORM模式
    2.   CMP 模式
    3.   JDO 模式
    4.   主動域對象模式
 
 
實現數據持久化的框架 
 
分析:
    1. 多種類型數據庫基類:  AbstractPM
    1.1 關係型數據庫
        1.1.1 理論基礎
            1.1.1.1 JPA  JPA通過JDK 5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體對象持久化到數據庫中。
                ORM範疇
            參見:  http://baike.baidu.com/view/1036852.htm?fr=ala0_1_1
            1.1.1.2 ADO.NET Entity Framework, 是微軟以 ADO.NET 爲基礎所發展出來的對象關係對應 (O/R Mapping) 解決方案,早期被稱爲 ObjectSpace,現已經包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中發表。
  ADO.NET Entity Framework 以 Entity Data Model (EDM) 爲主,將數據邏輯層切分爲三塊,分別爲 Conceptual Schema, Mapping Schema 與 Storage Schema 三層,其上還有 Entity Client,Object Context 以及 LINQ 可以使用。
                ORM範疇
            1.1.1.3 JDO   JDO(Java Data Object )是Java對象持久化的新的規範,也是一個用於存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因爲它可以在任何數據底層上運行。JDBC只是面向關係數據庫(RDBMS)JDO更通用,提供到任何數據底層的存儲功能,比如關係數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強
                JDO模式
            1.1.1.4  EJB
            一個技術規範:EJB 從技術上而言不是一種"產品",
                EJB 是一種標準描述了構建應用組件要解決的:
                可擴展 (Scalable)  分佈式 (Distributed)  事務處理 (Transactional)   數據存儲 (Persistent)  安全性 (Secure)
        參見:   http://baike.baidu.com/view/3542.htm
            CMP模式
 
        1.1.2 對應實現框架
            1.1.2.1 Hibernate/NHibernate   對應JPA 數據ORM模式
                核心步驟:
                    核心類: Session 
                原理:
                    1.讀取並解析配置文件
                    2.讀取並解析映射信息,創建SessionFactory  ORM--> 生成metadata類過程
                    3.打開Sesssion
                    4.創建事務Transation
                    5.持久化操作  Session.save(Obj), Session.update(obj)
                    6.提交事務
                    7.關閉Session
                    8.關閉SesstionFactory
            
            1.1.2.2 IBatis/IBatisNet   iBATIS一詞來源於“internet”和“abatis”的組合,是一個由Clinton Begin在
                                2001年發起的開放源代碼項目。最初側重於密碼軟件的開發,現在是一個基於Java的持久層框架。
                        iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發的JPetStore實例
                    原理:
                    SqlMapClient  對象是ibatis持久層操作的基礎,提供了一系列的對照方法
                                insert()方法實現對插入SQL語句的映射;
                                delete()方法實現對刪除SQL語句的映射;
                                update()方法實現對更新SQL語句的影射;
                                queryForList()、queryForMap()、queryForObject()、queryForPaginatedList()等方法提供了一組查詢SQL語句的影射
                    實現步驟:
                            1.ibatis SQL Map 配置文件 
                                文件中對所用數據庫的連接做了基本配置,包括數據庫驅動類型、用戶名、密碼,以及連接池的相關管理數據。 
                            2.PO和映射文件 
                            和hibernate一樣,PO作爲數據庫關係表的影射,也需要響應的映射配置文件,可以手寫,也可以藉助hibernate的相關工具生成PO,不會影響PO在ibatis中的使用。與hibernate不同的是,ibatis的映射文件中沒有對PO中每個屬性做響應的描述,而是指定了一系列與PO有關的SQL相關操作,也體現了ibatis良好的靈活性與可擴展性。 
                            3.編寫DAO 
                                在DAO中,可以使用SqlMapClient提供的方法來對應的指定對PO操作的SQL語句,從而使業務邏輯層的開發仍然是面向對象的操作。相對Hibernate“O/R”而言,iBATIS 是一種“Sql Mapping”的ORM實現。
            1.1.2.3 
        
    1.2 對象數據庫
    1.3 後關係型數據庫-- Cache數據庫
        1.3.1 理論基礎
            1.1.3.1 JPA  JPA通過JDK 5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體對象持久化到數據庫中。
                ORM範疇
        1.3.2 實現框架
            1.3.2.1 Hiberante
            1.3.2.2 Jalapeño   The Jalapeño Persistence Library for Java is a powerful, lightweight tool that provides an easy way for your Java application to store and access POJOs (Plain Old Java Objects) without mapping,  Jalapeño的底層訪問時JDBC 也是就是說它自動轉換成了SQL語句來訪問數據庫,  它是一個輕量級的工具; 分成設計態和運行態;
                核心類是:  ObjectManager
                    包含的方法:save()、 update()、openById()  藉助於泛型可以很好實現AR模型
                    也可以實現DAO模型;  開發人員寫DAO就可以了;
            1.3.2.3 EJB binding
    技術模型:
    
 
web應用架構
主要討論數據持久化:
 
 1  AR模式:  POJO繼承一個數據管理基類,有些集成好的方法
 2 DAO模式   把持久層分成: POJO層,DAO層兩層來管理數據持久化, 應用要複雜一點;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章