跪求大家,帮我看看这个问题,谢谢!!!!!!!!!!!!!http://expert.csdn.net/Expert/topic/2633/2633574.xml?temp=.6377375

解决方案 »

  1.   

    我的建议就是以后用sessionbean + jdo
      

  2.   

    其实对CMP大量查询的解决办法就是不用CMP,用session bean + jdbc就可以了。CMP本身并不适合用来作大量查询,所以你很难试图根本上解决这个问题。不过CMP比BMP的好处是,CMP在find方法中可以利用底层O/R机制构造一次sql语句,而不是很多次sql语句。比如:findAll(),如果DB中有1000条记录,BMP就进行1001次sql查询(1次select id from table,1000次select * from table where id = ?),而CMP只进行一次。在查询不是很复杂的情况下还是可以的。
      

  3.   

    CMP连sun自己都用jdo替代了,建议放弃cmb,用jdo
      

  4.   

    回复 louisqiang(tenwin):
     
      CMP与jdo不是一个重要级的东西,我不知道sun是否说过这样的话,即使说过,也是有一定前提的,不要断章取义。据我所知:JDO好象不支持事务传递、安全传递等一系列分布式的企业级组件的管理功能,也就是说它们根据不能算一个层次的东西,大家的设计目标、应用前景也都不一样,两者有一定的交叉,但绝不可替代。我也没看过JDO规范,如果我对JDO的理解有错,别乱扔砖头,我也是听说的:)
      

  5.   

    CMP实体Bean技术给开发者带来了很多重要的好处。首先,EJB容器处理了所有数据库的访问操作。其次,容器管理了实体Bean之间的关系。因为这些服务,你不需要为数据库访问而编写任何代码,而只用在部署描述符里指定配置。这种方法不仅可以节省开发者的时间,更重要的是它使企业Bean在访问不同的数据库时有更好的可移植性。
      

  6.   

    既然SUN提供了CMP,BMP有两种选择方案了。该用什么我觉的是开发者的选择
      

  7.   

    。如果用BMP实现实体Bean,你必须自己编写数据库访问代码。虽然写这些代码是附加的责任,但是因此你可以更灵活的控制实体Bean访问数据库的行为