WEB开发网
开发学院软件开发Java Go-ForIt 记事:eXtreme ragonSlayers 专题报告,... 阅读

Go-ForIt 记事:eXtreme ragonSlayers 专题报告,第 10 部分: 使用定制查找器方法检索不同的结果集

 2009-11-06 00:00:00 来源:WEB开发网   
核心提示: 查找器方法可以拥有任意输入参数,只要有办法根据输入参数找到正确的 EJB 或 EJB 集,Go-ForIt 记事:eXtreme ragonSlayers 专题报告,第 10 部分: 使用定制查找器方法检索不同的结果集(6),您就可以构造一个查询,该查询将返回实例化一个或多个 bean 所需的数

查找器方法可以拥有任意输入参数。只要有办法根据输入参数找到正确的 EJB 或 EJB 集,您就可以构造一个查询,该查询将返回实例化一个或多个 bean 所需的数据库中的行。但是,容器工具可能无法生成所有不同的查询来涵盖所有的可能情况; findByPrimaryKey 非常明显,但其它的并不明显。您需要 帮助容器访问数据库中的正确记录。这就是定制查找器助手的用武之地。

有四种类型的定制查找器可用:

SQL SELECT

SQL WHERE

SQL 方法

EJB 查询语言(仅限于 EJB 1.1 级)

我们使用第二种类型, SQL WHERE ,这就是我在本文中描述的内容。

FinderHelper

FinderHelper 接口由包含容器将要使用的 SQL WHERE 子句的字符串组成。每个查找器方法有一个子句,该子句被附加到查询中的一个 SQL 语句,该查询在执行查找器方法时由容器启动。下面的示例帮助说明了这种概念。该示例显示了两个查找器方法以及 FinderHelper 接口。


查找器方法示例
  ... 
  public com.goforit.ejb.Errand findNewestErrand(int arg0) 
   throws java.rmi.RemoteException, javax.ejb.FinderException; 
  public java.util.Enumeration findAllErrands() 
   throws java.rmi.RemoteException, javax.ejb.FinderException;  
  public com.goforit..... 

上面的两个方法是在 Home 接口中定义的。第一个方法返回具有最高差事标识的差事。第二个方法返回全部差事的枚举。现在来看一下 FinderHelper 接口,该接口与这两个查找器方法一起联合使用。


FinderHelper 接口示例
public interface ErrandBeanFinderHelper { 
 public final static String findNewestErrandWhereClause = 
 "ERRANDID = (SELECT MAX(ERRANDID) FROM GOFORIT.ERRAND)"; 
 public final static String findAllErrandsWhereClause = 
 "1 = 1"; 
 } 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Go ForIt 记事

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接