J2EE快速进阶培训-CMP.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CMP实体Bean技术给开发者带来了很多重要的好处。 首先,EJB容器处理了所有数据库的访问操作。 其次,容器管理了实体Bean之间的关系。因为这些服务,你不需要为数据库访问而编写任何代码,而只用在部署描述符里指定配置。这种方法不仅可以节省开发者的时间,更重要的是它使企业Bean在访问不同的数据库时有更好的可移植性 CMP 实体 Bean的特点 (1) 数据处理逻辑和数据存取逻辑的分离 开发人员只需要编写一个不包含任何存取逻辑(JDBC代码)的实体 Bean,然后容器自动从你定义的这个Bean类继承,并生成一个子类,容器在这个子类中嵌入了由容器自动生成的JDBC代码,这就是CMP,由容器来完成数据存取逻辑,而数据处理逻辑则由你定义的父类完成。所以CMP 实体 Bean实际上包含两个Bean类,一个是用户定义的父类,另一个则是由容器生成的子类,在子类中封装有数据的存取逻辑。 (2) 与数据库字段相对应的成员变量在子类中定义 CMP 实体 Bean类是在它的子类中定义这些成员变量的。因为不同的EJB容器对数据的表达方式不一样,另外数据的表达也应该和数据的存取逻辑放在一块,这样进一步体现数据的处理逻辑和数据的存取逻辑的分离。 (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之间的关系是非常有用。 CMP实现的实体Bean必须符合CMP的语法规则 首先Bean类必须定义为公有(public)和抽象(abstract)的。其次要实现一下内容: EntityBean接口 零对或多对ejbCreate和ejbPostCreate方法 持久性字段和关系字段的get和set方法定义为abstract 所有的select方法定义为abstract 商业方法 CMP的实体Bean类不能实现如下方法 查找方法 finalize方法 两种持久性机制的编码比较 访问(get和set)方法 CMP实现的实体Bean中持久性字段和关系字段都是虚拟的,你不能把它们在Bean类中写成实例变量,而应该在部署描述符里列出它们。要访问这些字段,你需要在实体Bean类中定义抽象的get和set方法 select方法 select方法和查找方法有很多相同的地方: select方法可以返回Local或者Remote接口或者它们之一的集合 select方法访问数据库 部署描述符为每个select方法指定EJB QL查询 实体Bean类并不实现select方法(只是声明或者说定义) select方法和查找方法一些显著的区别 一个select方法可以返回相关联实体Bean的一个持久性字段或者字段的集合。而查找方法值可以返回所属实体Bean的Local或者Remote接口或者它们之一的集合。 因为select方法在Local或者Remote接口中没有被定义,所以它们不能被客户端访问,而只能被所属实体Bean中实现的方法调用(用点像类的私有方法)。select方法通常被商业方法调用。 select方法在实体Bean类里定义。BMP的查找方法也在实体Bean类中定义,但是CMP的查找方法不在实体Bean类里定义。CMP中的查找方法在Home或者Local Home接口中定义,在部署描述符中定义对应的EJB QL查询。 select的方法签名规则 方法名要以ejbSelect开头 访问修饰符必须是public 方法必须声明为抽象的 throws子句必须包括javax.ejb.FinderException Local Home接口 Local Home接口定义本地客户端调用的create方法、查找方法和Home方法。 create方法的语法规则如下: 方法名以create开头 和对应的实体Bean类里定义的ejbCreate方法有相同的参数签名 返回实体Bean的Local接口 throws子句包括对应ejbCreate方法throws子句中出现的所有异常加上j

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档