当前位置: 技术问答>java相关
请教有经验的开发者一个有关实体bean的问题!
来源: 互联网 发布时间:2015-05-05
本文导语: 请问一般在实际项目中,基于CMP和BMP的实体BEAN哪一个用得比较多?两种方式分别在什么情况下用比较适合?非常感谢! | 因为CMP目前仍然不够完善 对于复杂的查询工作,它不胜任 现在很多软...
请问一般在实际项目中,基于CMP和BMP的实体BEAN哪一个用得比较多?两种方式分别在什么情况下用比较适合?非常感谢!
|
因为CMP目前仍然不够完善
对于复杂的查询工作,它不胜任
现在很多软件公司,做EJB的时候,经常是
简单的查询用CMP
要完成复杂的数据操作,比如一个方法中要包括
查询、插入、更新
就用无状态SESSIONBEAN+JDBC
其实,用CMP最大的好处是write once run anywhere
如果你的项目中没有这样的需求(我想很少有项目会有这样的需求的)
那就完全没必要用CMP
SESSIONBEAN+JDBC会让你在编程、调试上感觉跟容易和轻松
对于复杂的查询工作,它不胜任
现在很多软件公司,做EJB的时候,经常是
简单的查询用CMP
要完成复杂的数据操作,比如一个方法中要包括
查询、插入、更新
就用无状态SESSIONBEAN+JDBC
其实,用CMP最大的好处是write once run anywhere
如果你的项目中没有这样的需求(我想很少有项目会有这样的需求的)
那就完全没必要用CMP
SESSIONBEAN+JDBC会让你在编程、调试上感觉跟容易和轻松
|
CMP是Container负责同步Bean状态与基础数据库,客户可以在Bean寿命周期中多次修改Bean状态,Container主要负责Bean的数据一致性与完整性。注意CMP要求基础数据库是关系数据库。BMP要求编程人员负责同步Bean状态与基础数据库,编程人员要在Bean实现类中编码所有需要的SQL语句和JDBC调用。CMP Container直接提供服务,BMP需要自己手写一定的代码。但使用BMP 可以增加设计的灵活性或在非关系型存贮中支持持久性。特别在实体Bean中要表示在多个表格中存储状态的累计对象,就必须使用CMP。所以一般还是用BMP,而且很容易上手。我现在在金仕达开发的一个项目就是使用BMP形式的EJB.