我对实体BEAN的一些见解和疑问,欢迎大家讨论

baitianhai 2003-07-14 10:04:59
我先说说我的一些理解,不知道正确与否,请大家讨论讨论
1:实体BEAN要解决的问题其实就是O/R映射问题
2:EJB1.1中所提倡的是粗粒度,在EJB2.0中则改成了细粒度
3:由于上一条的原因,在1.1为了增大粗粒度所提出的 复合实体 等模式在2.0中已没有使用的价值了
4:经过2.0的改良,用CMP的好处要大于BMP,所以提倡使用CMP
5:如果你相使用数据库的存贮过程的话,只能选择BMP
6:在CMP中为了优化和提高速度,避免过多的和数据库交互,可以采用 值对象模式
7:最后我要说的对于JDO的疑问,我没有了解过JDO,不过听说好像和ADO.NET差不多
对此我有一些疑问,现在的主要问题其实就是O/R映射问题,不过我知道ADO.NET,不过就是内存中的数据库,但是这里面有很多问题,首先ADO.NET本质还是关系型的,这对于O/R映射没有什么好处,另外ADO.NET并不是完全的充当数据库的缓冲,他只不过是把数据库的数据一次读到内存中,我觉得读到内存以后其实还是有很多问题的。
所以我个人感觉其实ADO.NET并不是多么的好,只不过他减少了对数据库的频繁访问而已



...全文
72 40 打赏 收藏 举报
写回复
40 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bamboo123 2003-07-18
不错,收获不小。希望大家以后多提一些这样值得讨论的话题!
  • 打赏
  • 举报
回复
subscribe 2003-07-18
值得关注,继续学习

5:如果你相使用数据库的存贮过程的话,只能选择BMP
EJB-QL以后是否会支持存储过程?

  • 打赏
  • 举报
回复
Schlemiel 2003-07-17
呵呵,原来这边还有.NET派的,有趣有趣。

“.Net在系统级实现的数据缓冲,java有吗?”——恕在下愚钝,请问什么叫“系统级实现的数据缓冲”?我孤陋寡闻,请不要拿大词来吓唬我,把我吓坏了。我只记得那个著名的“.NET petstore”,如果.NET的“系统级数据缓冲”就是这个意思的话,我实在为Java中没有这种东西而庆幸。

“别告诉我一些第三方的东东,哪些东西或者不够优秀或者要收费”——在.NET派的眼中,情况或许就是这样吧?你到sourceforge或者apache看看,open source可以做到多好,恐怕早已超出了你的想象。微软再强,用1000名优秀的工程师来开发一个产品也就算不得了了吧?每个著名的open source项目都有上万人参与,而且几乎每个参与者都是各自公司的技术骨干(菜鸟是没有这个胆子的)。你有什么理由认为第三方的东西就不够优秀?看看JBoss,看看Tomcat,看看Hibernate,你能找出比它们更优秀的东西来?

回到这个帖子的主题。.NET连一个真正意义的O/R mapping都没有,完全是一个表驱动的体系结构。当然了,.NET也不需要这样的能力,反正用ADO .NET就行了嘛。连一个O/R都没有的平台,实在让我感到有那么一点点恐惧。
  • 打赏
  • 举报
回复
wafer_w 2003-07-16
不错,工作上的需要是一回事,至于兴趣上的,当然要用free的技术和软件啦,有free的东西可用干嘛还用要钱的。。。
  • 打赏
  • 举报
回复
cyicecream 2003-07-16
收获不小,继续关注
  • 打赏
  • 举报
回复
syanyszy 2003-07-16
惭愧,原以为自己java学的不错了。那知道还有这么多东西要学。还有好多东西不懂呢
sigh,看来是非要加油不可了
  • 打赏
  • 举报
回复
baitianhai 2003-07-16
不好意思,我对谁都无所谓,只要有够FREE就行了
只要哪一天微软或者其它公司开始大规模打击盗版的时候,我不是丧家之犬就OK.
希望到哪一天老兄和这么多的兄弟还在大方的用VS.net
不过就算到哪一天我还是心安理得的搞着我的java

顺便说一句,我喜欢open source和free
在open source和free的java世界中
开发工具有eclipse和jedit(还有jdk)
应用服务器有Jboss+tomcat+apache
make工具有ant
测试工具有junit和Cactus (另注:结合ant和junit可以做到测试自动化)
......
太多了说都说不完
光apache的jakarta就有好多


  • 打赏
  • 举报
回复
Leomonkey 2003-07-16
值的学习,收藏
这问题是越讨论越清楚,
可惜俺说不上什么的,
想你们学习了
  • 打赏
  • 举报
回复
lifejoy 2003-07-16
虽然我用java,但是请楼主不要把.net这么优秀的东西来和java比,.net对对象进行和缓冲,java有吗(我等待下一个版本的虚拟机,也许会有吧)?.Net在系统级实现的数据缓冲,java有吗?(别告诉我一些第三方的东东,哪些东西或者不够优秀或者要收费).Java本身的念头不错就是被sun这个垃圾给搞的乱七八糟。强烈要求sun将java交给标准委员会,sun的股票又在降,说不定那天sun就变成了另外一个思科!
发言完毕!得罪之处还请原谅。就是不满sun!
  • 打赏
  • 举报
回复
znjq1001 2003-07-16
up
  • 打赏
  • 举报
回复
北极猩猩 2003-07-16
实体Bean解决的最大问题并不只是O/R映射,还有分布式处理,负载平衡,事务性等很多方面。所以,如果在可以预见的未来不需要这些高级特性选择JDO可以获得更好的性能表现。
  • 打赏
  • 举报
回复
Comer 2003-07-16
学习,关注,up
  • 打赏
  • 举报
回复
sallina 2003-07-15
学习!!
  • 打赏
  • 举报
回复
baitianhai 2003-07-15
对不起,我还不知道CMP如何使用复合实体!请老兄教教我!谢谢
  • 打赏
  • 举报
回复
baitianhai 2003-07-15
对不起,我还不知道CMP如何使用复合实体!请老兄教教我!谢谢
  • 打赏
  • 举报
回复
coolhorse 2003-07-15
well
复合实体 就一定是BMP吗?难道cmp就不能做复合实体??
不是很明白!!
  • 打赏
  • 举报
回复
baitianhai 2003-07-15
从EJB2.0开始,CMP有了非常大的改进,从性能上来说已经强过BMP,从开发速度上可以看出要大于BMP
并且我看了好多意见都是首推使用CMP,并且EJB2.0来引入了local接口,所以以前所提倡的粗粒度,现在意思已经不是很大了
我的这个前提是你使用CMP的,如果你要是非要使用BMP的话,那当然 复合实体 等模式还是很有用处的
  • 打赏
  • 举报
回复
dudunono 2003-07-15
ado的技术应用比jdo要广泛
  • 打赏
  • 举报
回复
baitianhai 2003-07-15
老兄的意思我知道
不过当你通过Bean类得到字段属性的时候,每访问一个字段就会从数据库load一次数据,这样效率很差
所以设计模式中有一个方法,就是设计一个普通的javabean类,然后把这个javabean类作为实体Bean的一个属性,这样访问的时候可以一次通过这个javabean属性把所有的字段都得到了

这是BMP的做法,我现在不知道CMP能不能用这样的方法?不过我感觉好像是不可以
所以请赐教
  • 打赏
  • 举报
回复
coolhorse 2003-07-15
to:楼上的 baitianhai(hong)
CMP中能否使用 值对象?
能不能具体一点!!??


2:EJB1.1中所提倡的是粗粒度,在EJB2.0中则改成了细粒度
3:由于上一条的原因,在1.1为了增大粗粒度所提出的 复合实体 等模式在2.0中已没有使用的价值了”
目前,我是在sessionbean中管理实体bean之间的关系的!可是,我看复合实体还是有点用处的,你的观点2,3是从哪儿得出来的??
  • 打赏
  • 举报
回复
加载更多回复(20)
相关推荐
发帖
Java EE

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
帖子事件
创建了帖子
2003-07-14 10:04
社区公告
暂无公告