JBuilder9+Weblogic7实战篇
ENTITY BEAN的运用(一)
作者:黄 凯
E_mail:hk_sz@163.com
一、Entity Bean 的基础理论
1.1 什么是Entity Bean
Entity Bean(实体Bean)是持久数据组件,代表存储在外部介质中的持久(Persistence)对象或者已有的企业应用系统资源。简单地讲,一个Entity Bean可以代表数据库中的一行记录,多个客户端应用能够以共享方式访问表示该数据库记录的Entity Bean。
那么什么是持久数据组件呢?为什么要使用持久数据组件?理解了这两个问题,也就清楚了Entity Bean的性质及用途。
持久数据组件指的是这样一种对象,它们知道如何将自身放入持久存储的空间中。它们使用一些持久机制,比如序列化、O/R映射。这种对象代表数据,例如使用持久数据组件代表下面这些信息:
● 银行帐号信息,例如帐号、密码和余额;
● 员工信息,例如姓名、部门和工资。
为什么要把这些数据以对象的方式进行处理而不是直接处理数据库中的原始数据,比如相关的记录呢?答案是将数据视为对象是非常便利的,因为能够方便地操作和管理对象,并且它们表现为一个紧凑的形式,此外,通过组件所在的应用服务器,可以获得事务、安全性等服务。
Entity Bean就是这种持久数据组件。Entity Bean知道怎样在一个诸如数据库的存储空间中永久保存自己。Entity Bean以域(field)的方式存储数据,例如银行帐号、密码和余额。
依赖于EJB容器提供的事务服务,多个客户端应用能够在保持数据库记录的一致性和完整性前提下实现对数据资源的共享。Entity Bean的生命期相对较长并且其状态是持续的。只要Entity Bean代表的数据库记录存在,该组件对象实例就一直存在,即使EJB容器崩溃,Entity Bean仍然具有生命力。
1.2 Entity Bean的子类型
按照Entity Bean持久性的实现形式,可以将Entity Bean分为容器管理持久性(CMP Container-Managed Persistence)和组件管理持久性(BMP Bean-Managed Persistence)两种模型。在CMP类型EJB组件的实现代码中,组件开发人员不需要为组件的持久性控制方法编写任何数据库操作的代码,而是在组件组装和部署过程中由部署工具自动创建;如果要创建BMP类型EJB组件,则组件程序设计人员需要为所有持久性方法编写控制代码。
1.3 Entity Bean的特点
与数据库中的数据记录相对应,每个实体类型EJB组件包含一个主键(Primary Key)标识,该标识与组件代表的数据库记录主键相同。客户端应用可以利用该主键定位EJB容器中的Entity Bean对象实例,进而定位组件代表的数据库记录。
实体类型EJB组件的主要特点包括:
● Entity Bean提供数据库中记录的视图;
● Entity Bean具有无限制生命期,EJB服务器崩溃也不会影响Entity Bean的存在;
● 多个Entity Bean可以对应同一数据库记录;
● EJB服务器可以利用Entity Bean的passivate方法将Entity Bean缓存到临时存储空间中,同样可以利用activate方法将缓存的Entity Bean重新读入EJB容器并恢复组件对象实例;
● 客户端应用可以利用在Entity Bean的Home接口中定义的创建、删除和查询等方法对组件进行管理。