1

什么时候适合在 Websphere 中使用数据 bean 或访问 bean?抱歉,如果我问的是基本问题,我是 Websphere 的新手。

就我而言,我正在尝试按产品查找目录列表。最初我一直在使用访问 bean。这可行,但有时会返回非常大的结果集/似乎非常占用内存。

CatalogEntryDescriptionAccessBean cedabp = new CatalogEntryDescriptionAccessBean();
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong);

数据 bean 提供了相同的方法:

CatalogEntryDescriptionDataBean cedabp = new CatalogEntryDescriptionDataBean();
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong);

为什么我要使用一种 bean 而不是另一种?一种更适合读取或写入数据吗?一个缓存提供的数据是否比另一个提供的数据更新?

更新:

我发现这两个类有如下关系:

CatalogEntryDescriptionAccessBean
|_ CachedCatalogEntryDescriptionAccessBean
  |_ CompactCatalogEntryDescriptionAccessBean
    |_ CatalogEntryDescriptionDataBeanBase
      |_ CatalogEntryDescriptionDataBean

所以 Data Bean 继承自 Access Bean,因此它包含相同的可见方法。

有趣的是,IBM 的文档指出:

访问 bean 提供 ... 对 home 对象的缓存,并减少对企业 bean 的调用流量。使用访问 bean 有额外的好处:

在运行时,访问 bean 缓存企业 bean home 对象,因为查找 home 对象在时间和资源使用方面是昂贵的。访问 bean 实现了一个 copyHelper 对象,当命令获取和设置企业 bean 属性时,该对象减少了对企业 bean 的调用次数。在读取或写入多个企业 bean 属性时,只需要对企业 bean 进行一次调用。

目前,我对数据 Bean 的用途感到困惑,如果访问 Bean 使用 CMP 来减少对实体 Bean 的调用?

我发现了一些更多的文档说明:

数据 bean 是在 JSP 页面中用于从企业 bean 检索信息的 Java bean。一个简单的数据 bean 扩展了它对应的访问 bean 并实现了 SmartDataBean 接口。通过扩展访问 bean,数据 bean 提供了实体 bean 的简单表示(间接):它封装了可以从实体 bean 中检索或设置的属性。

4

2 回答 2

1

DataBean 实现了比 AccessBean 更多的缓存,因此可能会减少对数据库的调用。

DataBean 适合在构成站点/Web 应用程序的 JSP 页面中使用,因为实例的数量可能很少,它应该有助于控制访问数据库的事务数量。

AccessBean 占用的内存要少得多,因此更适合循环进程等。

您通常希望找到用于后端 WebSphere 命令和报告等的 AccessBean。

于 2012-12-12T15:58:12.470 回答
1

通常,您可以将数据 bean 与 wcbase:useBean 标记结合使用来设置数据 bean 的属性,并且该标记将调用填充方法。这实质上是从 JSP 中抽象出访问 bean/EJB 的实例化过程。除此之外,Access bean 与数据 bean 的功能价值是相似的。我在命令中使用访问 bean,在 jsps 中使用数据 bean。

于 2013-02-13T16:35:46.113 回答