当前位置: 技术问答>java相关
哪位大侠能给我讲一下bmp和cmp的优缺点,以及在什么时候使用最好。。
来源: 互联网 发布时间:2015-10-05
本文导语: 哪位大侠能给我讲一下bmp和cmp的优缺点,以及在什么时候使用最好。。 多谢了!!!! | bmp和cmp的优缺点主要表现在编程的复杂度上。bmp需要提供你自己的数据访问逻辑,提供实现的方法,...
哪位大侠能给我讲一下bmp和cmp的优缺点,以及在什么时候使用最好。。
多谢了!!!!
多谢了!!!!
|
bmp和cmp的优缺点主要表现在编程的复杂度上。bmp需要提供你自己的数据访问逻辑,提供实现的方法,来建立bmp实例和数据库之间的持久性联系,即你要用数据库API(JDBC)编程实现数据的操作;而cmp则把数据的访问交给EJB容器代为处理。
随着EJB的版本从1.0到2.0的变化,bmp的优势已经逐渐丧失。只有在数据关系和数据操作十分复杂的情况下,才采用bmp。然而,EntityBean必须采用容器管理事务(声明性事务),其事务的边界划分、事务的隔离级别都被限定,因此笔者认为若要采用bmp,倒不如采用bean管理事务的SessionBean。
cmp在简化编码和数据持久方面可以说是十分出色的。但是,在数据的操作和关联关系特别复杂时,在ejb-jar.xml中描述实体间的关系和使用EJB QL语言将是一件比较艰巨的任务,因为你必须对数据间的关系十分清楚。吹毛求疵的说,cmp还不利于数据的跟踪,尤其在有逻辑错误的情况下。
不过,就bmp和cmp而言,cmp是当仁不让之选。
随着EJB的版本从1.0到2.0的变化,bmp的优势已经逐渐丧失。只有在数据关系和数据操作十分复杂的情况下,才采用bmp。然而,EntityBean必须采用容器管理事务(声明性事务),其事务的边界划分、事务的隔离级别都被限定,因此笔者认为若要采用bmp,倒不如采用bean管理事务的SessionBean。
cmp在简化编码和数据持久方面可以说是十分出色的。但是,在数据的操作和关联关系特别复杂时,在ejb-jar.xml中描述实体间的关系和使用EJB QL语言将是一件比较艰巨的任务,因为你必须对数据间的关系十分清楚。吹毛求疵的说,cmp还不利于数据的跟踪,尤其在有逻辑错误的情况下。
不过,就bmp和cmp而言,cmp是当仁不让之选。
|
大家多用cmp,因为他开发效率高,在跨平台上体现的更强壮。但是在操作数据库的灵活性上差。
bmp,在操作数据库上的灵活性及自由度更高些,但是需要程序员写的代码量回很大。
bmp,在操作数据库上的灵活性及自由度更高些,但是需要程序员写的代码量回很大。
|
楼上的说的很对。
CMP是EJB帮你操作数据库,你只要指定执行就可以了。
而BMP则是要自己来操作数据库,比如查询,更新都有自己来操作。代码量是比较大
的,而且有时效率也不是很高。
CMP对于一般的功能都能实现,但是对于复杂的多表的查询则显得不灵活,很费力。这
个时候我一般的解决办法就是直接访问数据库而绕过EJB,进行查询。
上面是我的一点认识,如果谁对于使用CMP时,遇到的复杂查询有更好的解决办法还请
拿出来分享一下。
CMP是EJB帮你操作数据库,你只要指定执行就可以了。
而BMP则是要自己来操作数据库,比如查询,更新都有自己来操作。代码量是比较大
的,而且有时效率也不是很高。
CMP对于一般的功能都能实现,但是对于复杂的多表的查询则显得不灵活,很费力。这
个时候我一般的解决办法就是直接访问数据库而绕过EJB,进行查询。
上面是我的一点认识,如果谁对于使用CMP时,遇到的复杂查询有更好的解决办法还请
拿出来分享一下。