J2EE快速进阶培训-CMP_第1页
J2EE快速进阶培训-CMP_第2页
J2EE快速进阶培训-CMP_第3页
J2EE快速进阶培训-CMP_第4页
J2EE快速进阶培训-CMP_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲人:王廷蔚CMPCMP实体Bean技术给开发者带来了很多重要的好处。首先,EJB容器处理了所有数据库的访问操作。其次,容器管理了实体Bean之间的关系。因为这些服务,你不需要为数据库访问而编写任何代码,而只用在部署描述符里指定配置。这种方法不仅可以节省开发者的时间,更重要的是它使企业Bean在访问不同的数据库时有更好的可移植性2

CMP实体

Bean的特点

(1)数据处理逻辑和数据存取逻辑的分离开发人员只需要编写一个不包含任何存取逻辑(JDBC代码)的实体

Bean,然后容器自动从你定义的这个Bean类继承,并生成一个子类,容器在这个子类中嵌入了由容器自动生成的JDBC代码,这就是CMP,由容器来完成数据存取逻辑,而数据处理逻辑则由你定义的父类完成。所以CMP实体

Bean实际上包含两个Bean类,一个是用户定义的父类,另一个则是由容器生成的子类,在子类中封装有数据的存取逻辑。(2)与数据库字段相对应的成员变量在子类中定义CMP实体

Bean类是在它的子类中定义这些成员变量的。因为不同的EJB容器对数据的表达方式不一样,另外数据的表达也应该和数据的存取逻辑放在一块,这样进一步体现数据的处理逻辑和数据的存取逻辑的分离。

3(3)get/set方法也在子类中定义和代表数据的成员变量一样,这些变量的get/set方法也是在子类中定义的。为了能够在父类中调用子类中的方法,必须要在父类中把相关的方法定义为abstract。(4)部署描述文件在CMP中的作用在CMP中,EJB容器通过部署描述文件获取相关的信息来产生数据成员变量、get/set方法和JDBC编码。(5)EJB查询语言EJB查询语言(EJB-QL)是一种面向对象的查询语言,它的基本语法和SQL很相似。在部署文件中定义EJB-QL语言,EJB容器通过这些语言来生成相应的JDBC代码。(6)ejbSelect()方法CMP实体

Bean有一个专门的ejbSelect()方法,这个方法并不向客户端开放,它是一个内部方法,这个方法在处理Bean之间的关系是非常有用。4CMP实现的实体Bean必须符合CMP的语法规则首先Bean类必须定义为公有(public)和抽象(abstract)的。其次要实现一下内容:EntityBean接口零对或多对ejbCreate和ejbPostCreate方法持久性字段和关系字段的get和set方法定义为abstract所有的select方法定义为abstract商业方法CMP的实体Bean类不能实现如下方法查找方法finalize方法

5两种持久性机制的编码比较不同点CMPBMP企业Bean类定义抽象非抽象数据库访问代码由工具产生开发者编码持久性状态虚拟持久字段表示代码中的实例变量表示持久性字段和关系字段的访问方法必须不是必须findByPrimaryKey方法由容器处理开发者编码其他查找方法容器根据开发者定义的EJBQL查询自动处理开发者编码select方法容器处理不需要ejbCreate方法的返回值应该为null必须是主键类6访问(get和set)方法CMP实现的实体Bean中持久性字段和关系字段都是虚拟的,你不能把它们在Bean类中写成实例变量,而应该在部署描述符里列出它们。要访问这些字段,你需要在实体Bean类中定义抽象的get和set方法7select方法select方法和查找方法有很多相同的地方:select方法可以返回Local或者Remote接口或者它们之一的集合select方法访问数据库部署描述符为每个select方法指定EJBQL查询实体Bean类并不实现select方法(只是声明或者说定义)8select方法和查找方法一些显著的区别一个select方法可以返回相关联实体Bean的一个持久性字段或者字段的集合。而查找方法值可以返回所属实体Bean的Local或者Remote接口或者它们之一的集合。因为select方法在Local或者Remote接口中没有被定义,所以它们不能被客户端访问,而只能被所属实体Bean中实现的方法调用(用点像类的私有方法)。select方法通常被商业方法调用。select方法在实体Bean类里定义。BMP的查找方法也在实体Bean类中定义,但是CMP的查找方法不在实体Bean类里定义。CMP中的查找方法在Home或者LocalHome接口中定义,在部署描述符中定义对应的EJBQL查询。9select的方法签名规则方法名要以ejbSelect开头访问修饰符必须是public方法必须声明为抽象的throws子句必须包括javax.ejb.FinderException10LocalHome接口

LocalHome接口定义本地客户端调用的create方法、查找方法和Home方法。create方法的语法规则如下:方法名以create开头和对应的实体Bean类里定义的ejbCreate方法有相同的参数签名返回实体Bean的Local接口throws子句包括对应ejbCreate方法throws子句中出现的所有异常加上javax.ejb.CreateException异常查找方法的规则:方法名以find开头返回实体Bean的Local接口或它的集合throws子句包括javax.ejb.FinderException异常必须定义findByPrimaryKey方法11CMP实体

Bean的生命周

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论