快速业务通道

EJB技术的数据库应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
很短的时间,从而同一个连接可以被多个组件使用。

组件不是通过数据库的绝对名来连接数据库,而是用逻辑名连接到数据库, 即用 JNDI lookup 来获得数据库连接,例如:在下面例子中的AccountEJB 类中,连接数据库有以下几个步骤:

1、指定数据库的逻辑名:

private String dbName = "java:comp/env/jdbc/AccountDB";

2、获得数据源:

InitialContext ic = new InitialContext();

DataSource ds = (DataSource) ic.lookup(dbName);

3、从数据源得到数据库连接:

Connection con = ds.getConnection();

这种间接的连接数据库有以下几个优点:

· 可以在具有不同的数据库名的不同环境中部署相同的 EJB 组件。

· 可以在多个应用中重用EJB 组件。

· 可以集成 EJB 组件到运行在分布环境的应用系统中。

另外,EJB 规范没有要求 J2EE的实现支持某一个特别类型的数据库系统,因此EJB 组件可以连接到不同的数据库系统。

四、EJB 数据库应用的例子

下面以一个简单的例子 "银行帐户"应用系统来介绍 EJB 组件的Entity bean类型的组件存取数据库。

Entity bean 的状态存储在关系数据库的 ACCOUNT 表中,表ACCOUNT 由下面的SQL 语句创建:

CREATE TABLE ACCOUNT     (id VARCHAR(3) CONSTRAINT pk_account PRIMARY KEY,      firstname VARCHAR(24),      lastname VARCHAR(24),      balance DECIMAL(10.2));

和其他EJB 组件一样,开发人员必须编写 Entity bean 的 Entity Bean Class 代码(AccountEJB.java)、Home Interface 代码(AccountHome.java)及Remote Interface 代码(Account.java)。

Entity Bean Class 代码( AccountEJB.java)

EntityBean 接口方法

EjbCreate 方法:当客户端调用 create 方法时,EJB 容器调用相应的ejbCreate 方法。一个Entity组件的ejbCreate 方法要实现下列工作:

· 插入Entity Bean 的状态到数据库中

· 初始化实例变量

· 返回主键。

AccountEJB的ejbCreate 方法调用insertRow 方法,而insertRow 方法发出一个 insert SQL 语句插入Entity Bean 的状态到数据库中,下面是 Account 类中ejbCreate 方法的源代码:

sublic String ejbCreate (String id,String firstName,String lastName,double balance)throw CreateException{     if (balance < 0.00) {     throw new CreateException("A negative initial balance is not allowed."); } try {       insertRow(id,firstName,lastName,balance);      } catch (Exception ex) {        throw new EJBException("ejbCreate:"+ex.getMessage()); }     this.id = id;      this.firstName = firstName;      this.lastName = lastName;      this.balance = balance;      return id; }

throws 子句可以包含 javax.ejb.CreateException 和别的应用系统中指定的例外处理例程(exceptions)。Entity Bean的状态也可以通过非 J2EE 应用系统直接插入到数据库中,如SQL 语言脚本插入一行数据到 ACCOUNT表中,尽管这条数据不是通过 ejbCreate 方法插入到数据库中的,但Entity Bean 同样能通过客户端程序定位这条数据。

EJB技术的数据库应用(3)

时间:2010-12-20

ejbPostCreate 方法

对于每一个ejbCreate 方法,开发人员必须在Entity Bean中写一个ejbPostCreate 方法,EJB 容器在调用完ejbCreate 以后,就立即调用ejbPostCreate,和 ejbCreate 方法不一样,ejbPostCreate 方法可以调用 getPrimaryKey 等方法,通常ejbPostCreate 方法是空的。

ejbRemove 方法

当客户端通过调用 remove 方法来删除一个 Entity Bean 的状态数据时,EJ

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号