22.1.实体bean.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文档。上传文档
查看更多
22.1.实体bean

实体Bean 议程 实体(entity)bean CMP Bean特点 CMP Bean如何连接到数据库 ? CMP vs BMP 实体(entity) bean 实体(entity)bean用来代表底层的对象,最常用的是用EntityBean映射关系数据库中的记录 在一个EntityBean 中,关系型数据库的字段可以被一对一的映射到一个EntityBean中,而表与表之间的关系就可以看成是EntityBean 之间的关系 一个EntityBean实例对应表中一个特定的行记录 一个相对于表的EntityBean就可以封装表中的部分或全部字段 实体(entity) bean 数据库记录的任何改变应该被同步到组件池中相关的Bean中,这个过程被成为持久性,这是EntityBean最重要的一个特征。 与会话Bean不同的是,EntityBean的寿命将超过创建它的客户端寿命,尽管客户在调用完一个EntityBean释放其资源后,EntityBean的实例本身仍然存在于组件池中,与映射的数据库记录保持持久性。 实体(entity) bean 根据持久性的管理者的不同分为: 容器管理持久性(CMP) Bean管理持久性(BMP) 容器管理者,就是在Bean与基础数据库表记录值之间负责同步工作的操作者。 实体(entity) bean CMP Bean持久性由EJB容器负责,Bean开发者不需要参与操作数据库的代码部分,与数据库的操作在部署EJB 时由EJB 部署者描述,由容器实现SQL 操作和同步工作。 BMP Bean的持久性由Bean负责,也就是由Bean 开发者负责与数据库交互的代码部分 。 EntityBean支持EJB的1.1和2.0规范,并且不能同时支持两者 CMP Bean特点 CMP使Bean开发者不用编写一行对数据库操作的代码就可以完成对数据库的基本操作,可以简化Bean的开发,使我们集中于纯业务逻辑部分 使用CMP方式编写的Bean对于数据库的操作是在部署时由部署者映射到实际的数据库字段的,所以这样就增强程序的移植性,CMP Bean 的不会为某种特定的数据库去设计。 可以迅速的开发出一个CMP Bean ,但可能会因为复杂的数据逻辑处理而放弃使用CMP Bean而采用BMP Bean CMP Bean 如何连接到数据库 ? 在部署Bean时由部署者为CMP Bean指定一个数据库连接池的JNDI命名。 J2EE应用服务器提供数据库连接池管理,并可以通过JNDI命名来获得一个引用。 当我们要改变数据库类型或改变数据库的连接地址时,只需重新配置这个数据库资源即可 。 CMP Bean 如何映射一个数据表 ? 在设计一个CMP Bean时,Bean被固定映射一个实体表,表中的每个指定字段被映射成bean的一个public 型类变量,在实际开发中,只需要在Bean的实现类中声明这些类变量,映射操作和SQL处理被交于部署者和容器自动完成。 CMP Bean 主键如何理解? 只有EntityBean有主键,Session调用主键方法将抛出一个异常。EntityBean是数据面向对象的表示,每个Bean的实例代表一行记录,所以就必须有一个主键来标识这个对象,以能够对其进行持久性操作 。 CMP Bean由容器来负责实例的生成、装入、寻找、更新、删除等,所以主键也由容器来控制。 对于CMP Bean,javax.ejb.EJBObject类已经为我们定义了一个默认的构造方 法 public abstract Object getPrimaryKey(),并且不需要我们再为其改造。 主键类型一般对应于数据表主关键字类型,CMP Bean 的主键是在部署者部署Bean 时被指定的 CMP状态图 CMP生命周期图 开发步骤 设计一个CMP Bean 至少包括四个步骤: 开发Home接口 开发组件接口 开发Bean实现类 编写部署文件 组件接口 组件接口类声明的接口方法必须在Bean实现类中实现。 注意到接口方法中没有声明对BOOKID 的操作是因为BOOKID 作为组件的主键有其默认的操作方法,使用getPrimaryKey()方法可以获取组件的主键值,注意返回的是一个OBJECT 类型,但是在你的客户端程序中可以通过上溯造型成合适的类型。 Bean实现类 EjbActivate()方法和ejbPassivate()方法在Bean激活或钝化时被调用 ejbLoad()方法从数据库中读取数据记录 ejbStore()方法提交当前数据状态到记录 EjbRemove()方法释放实例对象并删除映射的数据记录 SetEntityContext()可以使当前Bean实例访问Bean情境 unSetEntityContext()方法释放

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档