数据持久化

对象持久化:
    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层两层来管理数据持久化, 应用要复杂一点;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章