RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
J2EE 组件开发:实体EJB(下)
  • 作者:zhaozj
  • 发表时间:2020-12-23 10:57
  • 来源:未知

提纲: =================================== 一、客户端接口   1.1 Remote接口   1.2 Home接口 二、实例   2.1 BMP实体Bean

        2.1.1 ejbCreate()方法     2.1.2 ejbPostCreate()方法     2.1.3 ejbRemove()方法     2.1.4 ejbLoad()和ejbStore()方法     2.1.5 查找器方法     2.1.6 业务方法     2.1.7 数据库调用   2.2 Home接口   2.3 Remote 接口   2.4 部署描述器   2.5 客户程序   2.6 部署和运行 =================================== 正文: =================================== 一、客户端接口 在《J2EE 组件开发:实体EJB(上)》中,我们了解了实体EJB的特点、使用场合以及两种持久化类型。实体Bean与会话Bean相比,两者Home、Remote客户端接口的构造和使用方式相似。事实上,除了要在实体Bean的Home接口定义中增加一种查找器方法之外,剩下的只有语义上的细微差别。下面我们就来看看如何构造实体Bean的这些接口,以及客户程序如何访问这些接口。 1.1 Remote接口 实体Bean的远程接口封装了客户程序看到的实体Bean,其构造方式和会话Bean Remote接口的构造方式相同。实体Bean接口一般包含一些get方法和set方法,这些方法分别用来提取和设置数据;同时,Remote接口还可以包含任意应用层的接口定义。 下面我们来看看如何构造和使用实体Bean的Remote接口。图一显示了构造远程EJB接口所涉及的基本体系结构。

所有分布式EJB组件的远程接口,比如图一显示的MyEntityEJB,必须扩展javax.ejb.EJBObject接口。就象会话Bean一样,实体Bean利用底层的Stub程序、Skeleton程序以及容器提供的管理服务,实现从客户端接口到服务器端EJB组件的分布式的、可管理的访问。实际上,就实体Bean和会话Bean而言,两者Remote接口的真正区别仅在于一些语义上的细微差别。 就象会话Bean拥有远程接口一样,每一个实体Bean组件都要有一个远程EJB接口。这个接口为实体Bean的客户程序提供了分布式的接口,使得客户程序能够调用实体Bean的应用层逻辑。对于每一个实体Bean组件上的分布式应用层方法,比如MyEntityEJBean.someMethod(),EJB客户端远程接口必须定义一个对应的应用层方法,比如MyEntityEJB.someMethod()。分布式特性带来的一个附带的影响是,应用层远程接口中的每一个方法必须声明它能够抛出java.rmi.RemoteException。当然,这一规则仅对服务器端组件上需要提供分布式服务的方法有效。除了EJB远程接口上的应用层方法之外,远程实体Bean对象上还有一组从EJBObject继承的方法可供调用。 1.2 Home接口 实体Bean的客户程序通过Home接口创建、查找或拆除实体Bean。事实上,创建实体Bean导致把一个新的数据单元插入到数据源(例如,把一个新行插入到数据库表)。用来查找实体Bean的接口提供了一种查找数据单元的机制,且返回的结果符合面向对象的风格(实体Bean对象)。拆除一个实体Bean导致从数据库删除对应的数据单元。在这一部分,我们将了解如何创建和利用实体Bean Home接口,如何执行这些基本操作以及其他一些辅助性的操作。 图二显示了构造实体Bean Home接口所涉及的基本体系结构以及客户程序如何使用这些接口。要获得应用层EJB Home接口对象,比如图二显示的MyEntityHome(它必须从标准的javax.ejb.EJBHome接口派生),我们只需利用JNDI查找已命名的Home引用。实体Bean的客户端Stub程序实现了实体Bean实例的应用层Home接口,在服务器端,Skeleton程序和容器负责映射来自Stub程序的调用。