大家多用cmp,因为他开发效率高,在跨平台上体现的更强壮。但是在操作数据库的灵活性上差。
bmp,在操作数据库上的灵活性及自由度更高些,但是需要程序员写的代码量回很大。
bmp,在操作数据库上的灵活性及自由度更高些,但是需要程序员写的代码量回很大。
解决方案 »
- 大牛们来帮帮!ajax 交互成功后的 刷新问题,要给力阿
- hibernate一对多过滤集合抛出The collection was unreferenced错误
- 密码加密
- jsp页面中怎么实现每四张图片换行显示?在线等
- 如何用sax将数据写入到xml
- 关于spring httpInvoker 创建服务端实例的问题,请各位高手赐教!
- 自己配了apache和tomcat的集成,但是不能正常访问
- struts
- 请问什么是 "数据均采用数据库存储,采用JDBC连接池,直接连接数据库,不需要配ODBC直接运行即可。"
- xsl高手请继续来帮帮忙
- ejb-entry
- 调试EJB时出现如下信息如何解决,哪位高手救命!
CMP是EJB帮你操作数据库,你只要指定执行就可以了。
而BMP则是要自己来操作数据库,比如查询,更新都有自己来操作。代码量是比较大
的,而且有时效率也不是很高。CMP对于一般的功能都能实现,但是对于复杂的多表的查询则显得不灵活,很费力。这
个时候我一般的解决办法就是直接访问数据库而绕过EJB,进行查询。上面是我的一点认识,如果谁对于使用CMP时,遇到的复杂查询有更好的解决办法还请
拿出来分享一下。
随着EJB的版本从1.0到2.0的变化,bmp的优势已经逐渐丧失。只有在数据关系和数据操作十分复杂的情况下,才采用bmp。然而,EntityBean必须采用容器管理事务(声明性事务),其事务的边界划分、事务的隔离级别都被限定,因此笔者认为若要采用bmp,倒不如采用bean管理事务的SessionBean。
cmp在简化编码和数据持久方面可以说是十分出色的。但是,在数据的操作和关联关系特别复杂时,在ejb-jar.xml中描述实体间的关系和使用EJB QL语言将是一件比较艰巨的任务,因为你必须对数据间的关系十分清楚。吹毛求疵的说,cmp还不利于数据的跟踪,尤其在有逻辑错误的情况下。
不过,就bmp和cmp而言,cmp是当仁不让之选。