分享
 
 
 

专稿:实战EJB之四 开发实体CMP(EJB 1.1规范)

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

实战EJB系列

在以后的日子里,将由Jackliu向大家陆续提供一系列EJB教程,有学习EJB的朋友请同步参考EJB相关书籍,实战系列将以例程的方式帮助你理解这些基本的概念,其中将包括:

点击查看大图

所有章节完毕后将制作成pdf电子文档,供大家下载。

实战EJB之四 开发实体CMP(EJB 1.1规范)

在前面的几篇文章里我介绍了如何开发会话Bean,下面将向大家介绍如何开发Entity Bean,首先充实一些关于Entity Bean的基本知识。

实体(entity) bean用来代表底层的对象,最常用的是用Entity Bean映射关系数据库中的记录。在一个Entity Bean中,关系型数据库的字段可以被一对一的映射到一个Entity

Bean中,而表与表之间的关系就可以看成是Entity Bean之间的关系。一个Entity Bean的实例可能会对应表中一个特定的行记录描述或者对于一个查询结果。比如我们在数据库中设计了一个BOOK表,一个相对于BOOK表的Entity

Bean就可以封装表中的部分或全部字段,当客户端获取一个Book Bean的实例引用时,就如同我们使用一个SELECT语句从数据库中检索了一条特定的关于一本图书的记录,并可以通过对象方法的方式去访问记录的值,当然你也可以使用remove方法去删除这条记录,用setXXX去改变某个字段的值,新的EJB

2.0查询语言(EJB QL,EJB 2.0 query language)使你可以通过SELECT的方式直接从组件池中查询Bean。

由于这种Bean对应于数据库中的记录,所以数据库记录的任何改变也应该被同步到我们的组件池中相关的Bean中,这个过程被成为持久性(persistencd),这是Entity

Bean最重要的一个特征。根据持久性的治理者的不同分为:容器治理持久性(CMP,Container-Managed Persistence)和Bean治理持久性(BMP,Bean-Managed

Persistence)。何谓容器治理者,就是在Bean与基础数据库表记录值之间负责同步工作的操作者。

CMP Bean的持久性由EJB容器负责持,Bean开发者不需要参与操作数据库的代码部分,与数据库的操作在部署EJB时由EJB部署者描述,由容器实现SQL操作和同步工作。BMP

Bean的持久性由Bean负责,也就是由Bean开发者负责与数据库交互的代码部分。

Entity Bean支持EJB的1.1和2.0规范,并且不能同时支持两者,我们将按照规范1.1和2.0分别介绍BMP和CMP的特性,本节将主要介绍CMP

在EJB 1.1规范定义下的应用。当然上面的这些知识不足使你全部了解Entity Bean,你应该从相关的书籍或文章阅读有关的介绍。

在本节中你将了解到:

EJB 1.1规范中的CMP

Entity Bean的寿命周期

编写一个EJB 1.1 的CMP程序

部署到应用服务器

开发和部署测试程序

运行测试程序

EJB 1.1规范中的CMP

首先介绍一下容器持久性治理(CMP),然后介绍规范1.1中规定的CMP。

EJB结构的一个重要优点是EJB容器可以自动的为Entity Bean提供各种有用的功能,容器持久治理(CMP)可以使Bean开发者不用编写一行对数据库操作的代码就可以完成对数据库的基本操作,这样可以简化Bean的开发,使我们集中于纯业务逻辑部分,这也是EJB的一个目标。以为使用CMP方式编写的Bean对于数据库的操作是在部署时由部署者映射到实际的数据库字段的,所以这样就增强程序的移植性,CMP

Bean的不会为某种特定的数据库去设计。假如你还对CMP不甚了解,下面可以帮助你迅速解答你一部分疑问:

CMP Bean如何连接到数据库?

假如你是一个Bean的开发者,打消这个念头吧,因为你已经不许要考虑这些问题了!这些工作将在在部署Bean时由部署者为CMP Bean指定一个数据库连接池的JNDI命名。java应用服务器提供数据库连接池治理,并可以通过JNDI命名来获得一个引用。当我们要改变数据库类型或改变数据库的连接地址时,只需从新配置这个数据库资源即可。

CMP Bean如何映射一个数据表?

这是一个值得考虑的问题,因为这是你在设计一个具体应用是考虑使用CMP还是使用BMP的依据之一。在设计一个CMP Bean时,Bean被固定映射一个实体表,表中的每个指定字段被映射成bean的一个public型类变量,在实际开发中,只需要在Bean的实现类中声明这些类变量,映射操作和SQL处理被交于部署者和容器自动完成。当然你可以迅速的开发出一个CMP

Bean,但可能会因为复杂的数据逻辑处理而放弃使用CMP Bean而采用BMP Bean,至少在规范1.1版本,对CMP Bean规范的定义带来束缚还是比较大。

CMP Bean主键如何理解?

只有Entity Bean有主键,session调用主键方法将抛出一个异常。Entity Bean是数据面向数据对象的表示,每个Bean的实例代表一行记录,所以就必须有一个主键来标识这个对象,以能够对其进行持久性操作。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有