Go-ForIt 记事:eXtreme ragonSlayers 专题报告,第 10 部分: 使用定制查找器方法检索不同的结果集
2009-11-06 00:00:00 来源:WEB开发网
另一个查找器方法 ...
public com.goforit.ejb.Errand findNewestErrand()
throws java.rmi.RemoteException, javax.ejb.FinderException;
public java.util.Enumeration findAllErrands()
throws java.rmi.RemoteException, javax.ejb.FinderException;
public java.util.Enumeration findRecentErrands(int arg0)
throws java.rmi.RemoteException, javax.ejb.FinderException;
public com.goforit.....
这个查找器的 WHERE 子句相当简单。在下面的样本中, WHERE 子句使用 ? 作为查找器方法的输入参数的占位符。在这个例子中,findRecent Errands 方法中 arg0 的值将被替换到 SQL 语句中。结果集将包含所有差事标识大于传递给该方法的整数的差事。
FinderHelper 接口示例public interface ErrandBeanFinderHelper {
public final static String findNewestErrandWhereClause =
"ERRANDID = (SELECT MAX(ERRANDID) FROM GOFORIT.ERRAND)";
public final static String findAllErrandsWhereClause =
"1 = 1";
public final static String findRecentErrandsWhereClause =
"ERRANDID > ?";
}
persister 类
我们还要考虑另一个难题。您需要为将要使用的数据库表定义一个 EJSJDBCPersister 类型的类。这个类有几个关键之处。第一个是要使用的表的定义。下面的代码样本显示了类的定义和表的别名定义。
persister 类示例....
public class EJSJDBCPersisterErrandBean extends EJSJDBCPersister
implements EJSFinderErrandBean, VapEJSJDBCFinderStatementHelper {
final static String[] createTableSqlStrings = {
"CREATE TABLE goforit.Errand ( status VARCHAR(30),
description VARCHAR(30), category VARCHAR(30),
errandid INTEGER NOT NULL, subcategory VARCHAR(30),
duedate DATE, timestamp VARCHAR(30), comments VARCHAR(1024),
User_userid VARCHAR(30) NOT NULL)",
"ALTER TABLE goforit.Errand ADD CONSTRAINT ErrandPK PRIMARY KEY ( errandid)"
};
....
第一个字符串定义了表,第二个字符串定义了键。您还必须指定一些缺省信息,如下所示。
persister 类示例....
final static String genericFindSqlString =
"SELECT T1.status, T1.description, T1.category, T1.errandid,
T1.subcategory, T1.duedate, T1.timestamp, T1.comments,
T1.User_userid FROM goforit.Errand T1 WHERE ";
....
这个字符串定义了查询字符串的前半段。我们的 WHERE 子句将被附加到这个字符串以创建一个完整的 SQL 查询。注意还需要在 EJSJDBCPersister 中提供一些其它定义;一条 update 语句、一条 delete 语句,如果希望支持多个数据库,还需要提供各种数据库类型的其它表定义。
总结
定制查找器助手允许应用程序与 EJB 容器一起工作来访问适当的 EJB。FinderHelper 类让您帮助容器从数据库检索适当的信息。我希望本文对这些有用的类和方法的介绍会对您有所帮助。
- ››Google运作经理Bryan Power给出的GOOGLE求职意见
- ››Google用户体验的十大设计原则
- ››Google Analytics(分析)能为网站带来什么
- ››Google goggles图片搜索 如何优化一个wap网站
- ››Google Docs将增加iPhone和Android编辑功能
- ››Google Android操作系统内核编译图文教程
- ››google map api 与jquery结合使用--控件,监听器...
- ››google map api 与jquery结合使用(2) --标注,浮...
- ››google map api 与jquery结合使用(3) --图标样式...
- ››Google 首页代码分析及简评
- ››Got a packet bigger than ‘max_allowed_packet’...
- ››Google财经更新iPhone和Android版本
更多精彩
赞助商链接