EJB有两种主要类型BMP(Bean managed persistence )和CMP(Container managed persistence ),这两种类型各有优缺点。
BMP是在Bean中完成对数据库JDBC的各种调用,也就是说,在你的实体bean(entity bean)中,明确写入了SQL语句,如"insert .. "或"select ..",并且使用Datasource获得一个数据库资源以及连接(connection)从而对数据库直接进行增加 删除修改。
CMP是由EJB容器自动完成对数据库的操作,你所有做的,就是在实体bean重写入SetXXX或getXXX方法,然后在ejb-jar.xml中定义cmp-field就可以。
很明显,CMP编写要简单多,而且数据库操作由EJB容器完成应该是一种趋势,但是CMP有个缺点就是不够灵活,如果我们要完成类似SQL搜索语句的like命令,如"select * from A where name like '%banqiao'",CMP就无法自动帮助我们完成,这样我们就需要BMP自己来写。
在实际应用,一般为了效率考虑,我们尽量使用CMP,但如何为将来有可能使用BMP作好准备,就是说有可以延伸到BMP的基础。EJB 2.0对CMP的抽象类支持为我们提供了这种实现的基础。
总体思路是,先使用抽象类完成CMP 如果需要BMP 可以extend这个抽象类,然后覆盖原来的方法(用自己的特殊SQL语句操作来覆盖该方法)。
分享到:
相关推荐
主要包括有状态会话Bean (Stateful Session Bean) 和无状态会话Bean (Stateless Session Bean),以及容器管理持久化实体Bean (CMP Entity Bean) 和Bean管理持久化实体Bean (BMP Entity Bean) 的开发过程。...
在这个“EJB实体Bean学习”主题中,我们将深入探讨实体Bean的两大类型——BMP(Business Managed Persistence)和CMP(Container Managed Persistence),以及如何进行基本的CRUD(创建、读取、更新和删除)操作。...
### 实体Bean开发实例 ...实体Bean的开发需要理解其基本理论,掌握CMP和BMP的区别,以及如何构建实体Bean的各种组成部分。通过合理的实体Bean设计和实现,可以有效地管理数据库中的数据,并支持复杂的业务需求。
2. **Container-managed Persistence (CMP)**:容器负责对象与数据库之间的持久化工作,开发者无需直接处理数据库操作,只需定义实体Bean的字段和属性。 3. **Entity Beans 3.0(EJB 3.0引入)**:简化了Entity Bean...
`entityType`定义Bean的管理类型,可选CMP(容器管理的持久化)和BMP(Bean管理的持久化);`access`定义了访问持久化数据的方式,可以是PROPERTY(通过getter和setter方法)或FIELD(直接访问字段)。同时,实体...
实体Bean有两种类型:Bean管理持久性(BMP)和容器管理持久性(CMP)。 - **Bean管理持久性**: BMP中,开发者负责管理Bean的持久性,包括连接数据库、执行SQL语句以及处理事务。 - **容器管理持久性**: CMP中,EJB...
在EJB 1.1规范中,实体Bean分为两种类型:容器管理持久性(Container-Managed Persistence, CMP)和Bean管理持久性(Bean-Managed Persistence, BMP)。本篇主要聚焦于CMP。 **容器管理持久性(CMP)**是EJB 1.1...
实体bean有两种形式:容器管理的持久性(CMP)和bean管理的持久性(BMP)。CMP由EJB容器负责数据的持久化,而BMP则将更多的控制权交给开发者,让开发者自己处理数据的存储和检索。 在实际应用中,EJB可以通过JNDI(Java...
在 ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b 这个压缩包中,我们看到的是针对EJB 2.1规范的一个登录实例,它涉及到了两种主要的实体Bean管理策略:CMP(Container-Managed Persistence,容器管理持久化)和 BMP(Bean-...
在EJB 2.0中,实体Bean分为两种类型:CMP(容器管理持久性)和BMP(Bean管理持久性)。 #### 1.1 容器管理持久性(Container-Managed Persistence, CMP) CMP是EJB 2.0中的一个重要特性,它将数据管理的责任交给了...
EJB3的实体Bean有两种生命周期管理方式:容器管理的持久性(CMP)和bean管理的持久性(BMP)。EJB3更倾向于使用CMP,由容器负责对象的创建、初始化、持久化、查找和删除,开发者只需要关注业务逻辑。 5. **事务...
**企业级JavaBeans(EJB)2.0实体Bean**是Java平台中用于构建可部署在企业级服务器上的分布式、事务处理和持久性应用程序的重要组件。这个PDF文档,"EJB2.0 Entity bean",可能包含了关于如何设计、实现和使用EJB2.0...
在EJB中,实体Bean分为两种主要类型:CMP(容器管理的持久性)和BMP( bean管理的持久性)。这两种类型的实体Bean在处理数据持久化和事务管理时有不同的职责分配。 1. CMP(Container Managed Persistence): CMP...
通过"使用ejb2.0 ql教程代码(cmp)"这个压缩包文件,你可以学习到如何在EJB 2.0环境中使用CMP和EJB QL进行数据库操作。这份资料可能包含实际的代码示例,展示了如何定义CMP实体Bean,编写EJB QL查询,以及如何在...
尽管现代技术如Spring Data JPA和NoSQL数据库提供了更多选择,但理解EJB-CMP和CMR的概念对于全面掌握Java EE技术栈至关重要。这份“EJB-CMP_CMR介绍与深入”资料,无疑是深入了解和学习这一主题的宝贵资源。
4. **CMP映射文件**:ejb-jar.xml或ejb-cmp.xml,定义了实体Bean与数据库表之间的映射关系,包括字段映射、主键生成策略等。 5. **主键(Primary Key)**:每个实体Bean都需要一个唯一的主键来标识,CMP提供了一些...
实体Bean和消息驱动Bean的结合使用,能够构建出高效、健壮的企业级系统,实体Bean负责数据持久化和共享,而MDB则负责异步处理任务,提高系统的响应能力和可扩展性。 总结,EJB3.0通过实体Bean提供了对数据库数据的...
在EJB 2.x中,实体Bean分为两种:Bean管理持久性(BMP)和容器管理持久性(CMP)。**CMP(Container Managed Persistence)**是EJB 2.x中的特性,它让容器负责对象和数据库之间的映射,简化了开发者的任务。案例可能...
10. **CMP和BMP的区别**: - CMP将持久性管理的职责交给了容器,开发人员无需关注数据库访问细节,但灵活性相对较低。 - BMP则让开发人员自己管理数据库访问,提供了更大的灵活性,但增加了开发复杂性。 通过理解...
此外,实体Bean还提供了多种本地接口方法,对应特定的SQL操作,如创建、更新、删除等,这些操作通常由容器或开发者根据选择的持久化策略(CMP或BMP)自动或手动执行。 ### 7. BMP与CMP的对比 BMP和CMP是实体Bean的...