并发访问并修改它的数据,因此事务管理是非常重要的。
事务管理属性被显示地定义在部署描述文件中,而容器负责管理事务的 边界. 要实现对象一关系映射,那实体EJB必须能提供插入、更新、查询、删除的操作。
而用于管理实体EJB对象与数据源之间的映射的过程被称为持久化。
换句话说,持久化是一个将信息写入外部数据源的一个过程。
EJB规范定义了实体EJB的两种持久化方式:Be’an自身管理的持久化(BlvlP)和容器管理的持久化 7持九层设计模式在增值服务同站系统的研究与应用 第1章综述 (CMP)。
如果选用BMP,那必须在代码中负责维护所有的持久化开发。
那么所有的数据层访问代码都必须由开发者来完成,这种方式能带给开发者更大的灵活性。
如果选用CMP,那不用编写数据层访问代码,EJB容器将会管理所有的持久化开发工作。
因此.数据层访问代码与数据源之间是松耦合的。
这能减轻开发者的代码编写量,并且使得CMP能部署到不同厂商的应用服务器中,也不必关心具体的数据源。
然后EJB的问题在于其违背了“帕累托法则”,即为了满足少数情况下的特殊要求,给大多数使用者强加了不必要的复杂性,比如分布式应用,与实际应用无关然后要遵循的复杂规范等【24】。
EJB因其重量级应用而得到人们的诟病,之后推出的EJB3.0对其进行了很大的改进,EJB3.O采纳了如TopLink和Hi/”raate轻量级的持久化模式来简化容器持久化管理。
Sun公司在之后的javaEE 5.0中引进了EJB3.0作为其重要的一个组成部分。
1.2.3.2 Hibernate Hibernate是一个开放源代码的O/R Mapping(对象关系映射框架),其对YDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate采用ORM映射机制的持久层开发工具,其是JAVA应用和关系数据库之前的桥梁,负责JAVA对象和关系数据之间的映射。
其内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API。
Hibernate的工作方式很简单,不会强迫开发者修改对蒙的行为方式,也不需要实现任何不可思议的接口以便能够持续存在。
惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求其以对象的形式获取数据,或者把对象保存为数据。
由于开源社区的活力,Hibernate的版本更新很快,而且其设计灵活,使得应用程序可移植性好。
Hibernate使用简单,可以很快地让开发人员学会如何部署丈现对象持久化,在现今得到了广泛的应用。
其它的优秀持久层框架还有比如;IBATIS,JDO等。
Spring等轻量级框架也给数据持久化提供了很好的解决方案.持九层设计模式在增值服务同站系统的研究与应用 第1章综述1.23.3 Spring Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。
框架的主要优势之一就是其分层架构,分层架构允许开发者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
Spring框架是一个分层架构,由7个定义良好的模块组成。
分别是:核心容器,Spring上下文,SpfingAOP,SpringDAO,SpringORM,Spring Web模块和Spring MVC框架。
组成Spring框架的每个模块(或组件)都可以单独存在.或者与其他一个或多个模块联合实现。
.