EJB技术的数据库应用 - 编程入门网
很短的时间,从而同一个连接可以被多个组件使用。
组件不是通过数据库的绝对名来连接数据库,而是用逻辑名连接到数据库, 即用 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 语句创建:
和其他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 方法的源代码:
throws 子句可以包含 javax.ejb.CreateException 和别的应用系统中指定的例外处理例程(exceptions)。Entity Bean的状态也可以通过非 J2EE 应用系统直接插入到数据库中,如SQL 语言脚本插入一行数据到 ACCOUNT表中,尽管这条数据不是通过 ejbCreate 方法插入到数据库中的,但Entity Bean 同样能通过客户端程序定位这条数据。 EJB技术的数据库应用(3)时间:2010-12-20ejbPostCreate 方法 对于每一个ejbCreate 方法,开发人员必须在Entity Bean中写一个ejbPostCreate 方法,EJB 容器在调用完ejbCreate 以后,就立即调用ejbPostCreate,和 ejbCreate 方法不一样,ejbPostCreate 方法可以调用 getPrimaryKey 等方法,通常ejbPostCreate 方法是空的。 ejbRemove 方法 当客户端通过调用 remove 方法来删除一个 Entity Bean 的状态数据时,EJ |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |