EJB CMP/BMP

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语句操作来覆盖该方法)。   

 

EJB/CMP的优点:   ● 采用工厂类(指Home)查找实例比向Session/Connection对象传递参数获取实例要好。   ● ejbSelect跟上面说的类似。   ● 查询名称使用abstract schma是一个很好的解决方案。   ● 理论上来说,这种模式在某些方案中可以有更好的复用性。   EJB/CMP的优点:   ● CMP不属于EJB规范。它并不是个合适的模型去实现这个目的。已经没有合适的(例如非官方)借口去让EJB3.0中保留CMP。 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CORBA(Common Object Request Broker Architecture)是一种面向对象的分布式计算平台,它允许在不同的操作系统和编程语言中,通过网络进行通信和交互。CORBA提供了一个标准的对象通信机制,使得不同系统中的对象能够无缝地协同工作。它适用于大规模分布式系统开发,并通过定义IDL(Interface Definition Language)来描述对象之间的接口和方法。CORBA拥有一套强大的工具和技术,并且具有良好的可扩展性和互操作性,是一种成熟稳定的构件技术。 EJB(Enterprise Java Beans)是一种用于构建企业级应用程序的服务器端组件技术。EJB使用Java语言和规范,并部署在Java EE(Java Enterprise Edition)容器中。它提供了一种构建可重用、可扩展和事务性的业务逻辑组件的方法。EJB提供了一系列的注解和API,使得开发人员能够定义和管理企业级的服务和资源。EJB具有强大的事务管理功能,以及分布式计算的能力,是一种面向业务逻辑的构件技术。 COM/DCOM(Component Object Model/Distributed Component Object Model)是一种微软公司开发的组件技术。它允许通过接口和对象来构建并组织应用程序。COM是用于在同一计算机上的应用程序之间进行通信的技术,而DCOM则扩展了COM的功能,使得应用程序能够在不同计算机之间进行分布式通信。COM/DCOM提供了一套机制和规范,使得开发人员能够构建可重用的组件,并将其组装在一起来形成应用程序。它是一种适用于Windows平台的构件技术。 综上所述,CORBA、EJB和COM/DCOM都是常见的构件技术,各有其特点和适用范围。CORBA适用于大规模分布式系统开发,EJB适用于构建企业级应用程序,而COM/DCOM适用于Windows平台的应用程序开发。开发人员可以根据自己的需求和技术环境选择合适的构件技术来构建应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值