对象持久化:
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范畴
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)
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层两层来管理数据持久化, 应用要复杂一点;