快速业务通道

将存储过程封装为EJB组件的方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
DBMS 无关”。有了 DAB 库,就可以用一个编码模式在会话 EJB 组件中封装任何存储过程。甚至可以在 EJB 客户机中使用一个通用的编码模式,来处理任何从封装器方法返回的结果。

回顾开发任务

我们来讨论一下使用通用编码模式,来集成 EJB 组件和 DBMS 存储过程的步骤:

确定要将哪个存储过程封装成 EJB 方法。如果该过程不存在,则遵循 DBMS 标准过程来创建和调试。

确定要使用哪个无状态会话 EJB 组件。如果该 EJB 不存在,则遵循 Java 开发环境的标准过程来创建和调试。

扩展 EJB 组件的远程接口,以包括用于封装存储过程的新方法。

扩展 EJB 组件的实现,以包括封装存储过程的新方法的逻辑。连接到数据库、调用存储过程、处理所有结果集和处理所有异常是后面要解决的问题。

通过构建一个客户机应用或 Servlet,来调用 EJB 组件封装器方法,以测试所做的工作。

头两项是基本编程任务,您可能已经熟悉。根据所用产品的不同,个别步骤可能会略有不同,但是大多数产品都有工具来提供帮助。例如,如果正在使用 VisualAge for Java 和 DB2,则可以利用“存储过程构建器”来完成步骤 1,以及利用 EJB 开发特性来完成步骤 2。本文将不集中讲述头两步。但是,其余三步需要详细讲解。本文将在一个实际示例的环境下讨论这些步骤中的每一步。

将存储过程封装为EJB组件的方法(2)

时间:2010-09-28

浏览应用方案

假设需要构建一个应用,该应用支持一家公司的市场营销分部,该分部维护面向金融的 Web 站点。该站点允许人们注册为客户,跟踪他们的投资总额,以及在电子公告板上发表意见。另外还假设,支持该站点的数据存储在 DB2 的表中。以下代码样本显示如何创建这些表。

在 DB2 中创建样本表的 SQL 语句

create table client ( id int not null primary key, name varchar(30), email varchar(30), phone varchar(12), regdate date, mktg char, constraint check1 check (mktg in (‘y‘, ‘Y‘, ‘n‘, ‘N‘)) ) create table portfolio ( id int not null, clientID int not null references client, ticker varchar(10) not null, cost decimal (9,2), qty int, date date, primary key (id, clientID, ticker) ) create table boards ( msgno varchar(15) not null primary key, subject varchar(40), date date, clientID int not null references client )

该数据库还包含一个特别重要的存储过程。过程 CLIENTREPORT 提供注册站点用户的综合概要,包括用户投资和他们在公告板上讨论的问题。这个报告还包括客户名称和电子邮件地址,以便在用户提出有关有潜在价值的附加产品或服务方面的建议时,市场营销人员可以与这些用户联络。要在会话 EJB 组件中封装的就是这个过程。

因为此过程可能用多种语言(包括 Java 编程语言)编写,这里就不显示它的完整内容。不管怎么说,源代码确实不那么重要,因为您不能假设总是可获得它们。但是,为了告诉您存储过程有什么内容,这里显示了它包括的三个 SELECT 语句:

CLIENTREPORT 存储过程中的 SQL 语句:

select name, e-mail from client where id = ?

select id, ticker, cost, qty, date from portfolio where clientid = ?

select msgno, subject, date from boards where clientid = ?

问号表示,该语句将依赖运行时来自调用程序的输入,在这种情况下,调用程序必须提供一个代表感兴趣的客户标识的有效数据值。通过这些语句,您可以猜出,存储过程将需要一个输入参数(用于客户标识),返回两个输出参数(用于客户名称和电子邮件地址),并返回两个结果集(一个包含有关客户投资总额的数据,另一个包含有关客户公

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号