将存储过程封装为EJB组件的方法 - 编程入门网
告板发表内容的数据)。
将存储过程封装为EJB组件的方法(3)时间:2010-09-28修改 EJB 组件的远程接口 现在我们来开始 EJB 组件代码工作。 既然要使封装器方法对 EJB 组件客户机可用,我们需要扩展 bean 的远程接口。将使用一个名为 Analysis 的无状态会话,并包括一个 lookupClient 方法,以用于存储过程封装器。该方法需要一个整数作为输入,以代表要报告的客户标识,它返回一个 DAB CallableStatement 对象(位于 com.ibm.db.* 包中)。将把该过程返回的任何异常转换成 RemoteExceptions(这适用于与 EJB 1.0 兼容的会话 bean)。 以下编码示例显示了 EJB 组件远程接口的修改部分。 EJB 组件远程接口
请注意,如果使用 VisualAge EJB 组件向导,则无需对此进行手工编码。替代方法是,在 bean 的实现类中对此方法编码之后,通过菜单项来将该方法提升(promote)到 bean 的远程接口,然后,将自动添加必需的代码。 编码存储过程封装器方法 现在可以集中讲述 bean 实现类本身,将在该实现类中包括调用存储过程的代码,并将其所有输出作为 com.ibm.db.CallableStatement 对象返回。包含调用 CLIENTREPORT 存储过程的 lookupClient(...) 方法的完整实现。将在后续章节中详细讲解每个代码块(参考代码中的注释)的逻辑,以便您更好地理解如何为自己的存储过程实现类似的方法。 连接到数据库 让我们更详细地查看此代码的各部分。 在调用存储过程之前,需要建立一个到 DBMS 的连接。有两种方法做得到:使用 1.0 样式的连接,或者使用 JDBC 2.0 样式的 DataSource。在 WebSphere 环境中,通常选用后者,因为它提供连接池(connection pooling),这可以更有效地使用系统资源。出于这种原因,我们的编码模式使用 DataSource。 除了确定要建立的连接类型之外,还应该考虑要将连接逻辑放在 bean 中的什么地方。有多个选择: 直接放在封装器方法(wrapper method)中 放在私有辅助方法(helper method)中 放在 ejbCreate() 方法中(并将相应的断开逻辑放在 ejbRemove() 方法中) 这些方法的利弊超出了本文的范围。为简单起见,样本代码将所有连接/断开逻辑直接放在方法中。 代码块 1 显示了在使用 VisualAge for Java 3.0.2 和 WebSphere 3.0.2.1 时,如何使用 DataSource 进行连接。我们创建了一个散列表,在其中填充适合于 WebSphere 环境的值,然后建立一个 InitialContext。代码的以下几行利用该初始上下文和 Java 命名和目录接口 (JNDI) 服务,来获得期望的 DataSource 的索引,我们以前在 WebSphere 中用“管理控制台”创建了该 DataSource。本例中的 DataSource 名为 LocalDB2Sample。下一步,使用该 DataSource 来获得一个连接,并向其传递合适的数据库用户标识和口令。从连接池获得连接之后,可以将该信息提供给 DAB DatabaseConnection 对象,来设置它所需的连接规范。最后,将 autoCommitMode 设置成 false,因为 EJB 组件负责处理事务管理服务。 测试时,在 VisualAge for Java WebSphere 测试环境中运行使用 DataSource 的 EJB 组件会很方便。有关如何在产品发行版 3.0.2 中这样做的指示,请参阅 David Zimmerman 所著的 "Creating DataSources in the VisualAge for Java WebSphere Test Environment"(在参考资料中)。 将存储过程封装为EJB组件的方法(4)时间:2010-09-28 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |