何时在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
因此数据Bean继承自Access Bean,因此它包含相同的可见方法。
有趣的是,IBM的文档指出:
访问bean提供...缓存 home对象,减少了对企业bean的调用流量。使用访问bean还有其他功能 优点:
在运行时,访问bean缓存企业bean主目标 因为在时间方面,仰望家庭对象是昂贵的 和资源使用。访问bean实现了一个copyHelper对象 这减少了命令时对企业bean的调用次数 获取并设置企业bean属性。只有一个电话 读取或写入多个时需要enterprise bean 企业bean属性。
目前,如果Access Bean使用CMP来减少对实体Bean的调用,我对数据Bean的用途感到困惑?
我发现了更多文档说明:
数据bean是在JSP页面中用于检索的Java bean 来自企业bean的信息。一个简单的数据bean扩展了它 相应的访问bean并实现SmartDataBean接口。 通过扩展访问bean,数据bean提供了一个简单的方法 实体bean的表示(间接):它封装了 可以从实体bean中检索或设置的属性。
答案 0 :(得分:1)
DataBean实现了比AccessBean更多的缓存,因此可能会减少对数据库的调用。
DataBean适合在构成站点/ Web应用程序的JSP页面中使用,因为实例数量可能很少,它应该有助于控制访问数据库的事务数量。
AccessBean的内存密集程度要低得多,因此更适合循环进程等。
您通常希望在后端WebSphere命令和报告等中使用AccessBean。
答案 1 :(得分:1)
通常,您可以将数据bean与wcbase:useBean标记结合使用来设置数据bean的属性,标记将调用populate方法。这实质上是从JSP中抽象出访问bean / EJB的实例化过程。除此之外,Access bean与数据bean的功能值相似。我在jsps中的命令和数据bean中使用访问bean。