1、cmp用工具建立非常快,一般只需要写ejb-ql语句,但是由于ejb-ql所提供的查询有限,如果要进行复杂的查询,建议不要使用它,bmp得自己在筐架中填写代码,开发速度慢。但由于是由开发者本人直接写sql语句,所以功能不受限制。但是(非常重要的是)用bmp进行数据查询当得出n条记录的时候,实际上要在数据库上执行n+1条查询语句。(工作流程:第一次查询得出符合条件数据的所有主键,第二步,根据每一个主键进行一次ejbload,即查询一次,所以会有n+1次查询行为)所以如果查询的结果集很大的话,建议不要用它。
2、根据第一的解释,如果只是查询的话,建议用jdbc

解决方案 »

  1.   

    >>CMP和BMP在各方面有什么区别呢?是否只是实现方式不同而已。 
    区别是BMP比CMP更垃圾,只有CMP不容易实现的时候,采用BMP>>用bmp进行数据查询当得出n条记录的时候,实际上要在数据库上执行n+1条查询语句
    不错,可能是为了利用cache,但是大多数情况下,这种行为会让你的程序......>>我们又不对返回结果做修改操作,那样岂不是效率反而低了。 
    不好意思,没看懂你想说什么意思>>说如果查询回来好几万条记录,那么也相应实例化上万个实体BEAN对吗? 
    是>>查询返回后,这些BEAN容器是怎么处理的,REMOVE了吗还是在池里放着待用?
    ejbRemove然后归还给池或销毁,具体取决于容器设置,比如pool min/max size, shrink size, etc.
      

  2.   

    他的意思是查询结果可以直接送到表示层,不用加工处理,其实就是读操作量远大于写操作量,还是jdbc好,部分要经常写的实体bean可以考虑DTO实现
      

  3.   

    如果只是读,可以考虑LDAP,速度更快.