你试过会很快??? 
我怎么不知道...
通过sessionbean访问entitybean是因为很多其它的原因,应该慢才是 ------------------------------------------------------
           我们还年轻牛奶会有的奶牛也会有的 
             可天天在 csdn 混这些会有吗 ??

解决方案 »

  1.   

    谁告诉你的,没这回事只不过你不应该在SERVLET中直接访问ENTITYBEAN
      

  2.   

    如果你用servlet直接访问实体bean,你的商务逻辑(方法)不都要在servlet里面实现了,这样就会暴大.当n个用户并发请求时候,你如何满足需求?可想你说的慢就应该来自这里.而sessionbean是在pool里面运行,可以满足你的并发请求..
      

  3.   

    "通过SessionBean来访问EntityBean"比“Servlet直接访问EntityBean”
    不一定更快,但是可能效率更好!这是一个设计模式的问题!你看过session外观模式吗?它说的很清楚。在session外观模式中:
    SessionBean来访问EntityBean:一般SessionBean调用的是EntityBean的本地接口,比servlet通过远程接口调用实体bean要快!
    可以将对多个实体bean的调用都写在一个sessionbean中。在客户端,只需要初始化一个sessionbean即可以调用多个实体bean!!
      

  4.   

    EJB可以暂存实例,通过EJB大量调用某个实例时,性能上会有所体现。
      

  5.   

    一般这种情况都是session facade模式,这样做是为了让调用者不去管内部的结构,直接调用api,也就是说完全是结构上的考虑才这样做的,而不是因为更快
      

  6.   

    entity bean按照标准一般不提供remote接口,session bean通过local接口访问entity bean,而自身开放remote接口提供给servlet访问。
      

  7.   

    在session外观模式中:
    SessionBean来访问EntityBean:一般SessionBean调用的是EntityBean的本地接口,比servlet通过远程接口调用实体bean要快!
    可以将对多个实体bean的调用都写在一个sessionbean中。在客户端,只需要初始化一个sessionbean即可以调用多个实体bean!!
    这个解释不太对哦,通过servlet调entitybean是remote invocation那么调session bean就不是了么?还不是一样的,这层性能开销是少不了的
      

  8.   

    coolhorse() ( )
    ----------------------------------------------------------
    "通过SessionBean来访问EntityBean"比“Servlet直接访问EntityBean”
    不一定更快,但是可能效率更好!这是一个设计模式的问题!你看过session外观模式吗?它说的很清楚。在session外观模式中:
    SessionBean来访问EntityBean:一般SessionBean调用的是EntityBean的本地接口,比servlet通过远程接口调用实体bean要快!
    可以将对多个实体bean的调用都写在一个sessionbean中。在客户端,只需要初始化一个sessionbean即可以调用多个实体bean!!
    1,从设计模式上说直接调用entity bean的确是效率低下,但是并不是调用本身速度慢下来了。
    2,无论是entity bean 用remote发布,还是作为local bind发布,事实上都要通过stub-skeleton,可能速度上有差别,但是据很多网友反应,事实上速度差别很不明显甚至是没有,
    我曾测试(Jb7+oracle7),也没有看出二者的区别
    3,总结大家的观点,我想楼主的问题的答案可能是:直接调用entity bean虽然速度快,但是效率低下,总体表现不如通过session bean 调用。
      

  9.   

    错了,是jbuilder 7+weblogic 7
      

  10.   


    EJB 的调用使用了远程方法,它的效率一般要远低于本地方法的
    调用,这样要读取一个对象,如果使用他的getXX 方法就多次调用了远
    程,效率很低,如果一次性读到值对象,这就减少了远程调用。
    我们在实际开发中,一般为每个EntityBean 建一个值对象,并且在
    entityBean 中的Home 接口中,增加一个create 方法,参数就是值对象. 并
    且在接口中增加setData 和getData 方法。在实际开发中,一般为每个EntityBean 建一个值对象,并且在
    entityBean 中的Home 接口中,增加一个create 方法,参数就是值对象. 并
    且在接口中增加setData 和getData 方法。package factory.manage_orders;import java.io.Serializable;
    import java.util.Date;
    //值对象
    public class OpenOrderView implements Serializable {
      public final int salesDivision;
      public final int orderNumber;
      public final String product;
      public final Date dateDue;  public OpenOrderView(int salesDivision, int orderNumber,
                           String product, Date dateDue) {
        this.salesDivision = salesDivision;
        this.orderNumber = orderNumber;
        this.product = product;
        this.dateDue = dateDue;
      }
    }//remote 接口暴露的供客户调用的商务方法,它返回View Object对象的数组;
    package factory.manage_orders;import javax.ejb.*;
    import java.util.Date;
    import java.rmi.RemoteException;
    import factory.order.OrderNotCancelableException;public interface ManageOrders extends EJBObject {
      void placeOrder(int salesDivision, int orderNumber,
                      String product, Date dateDue)
           throws RemoteException,
                  NoSuchProductException,
                  DuplicateOrderException;  void cancelOrder(int salesDivision, int orderNumber)
           throws RemoteException,
                  NoSuchOrderException,
                  OrderNotCancelableException;  OpenOrderView[] getSchedulableOrders() throws RemoteException;  void createSampleProducts() throws RemoteException;  void createProduct(String id, String name) throws RemoteException;  void addRoutingInstruction(String id, int sequence, String instruction)
           throws RemoteException;
    }
      

  11.   

    weblogic申明它的local,remote性能相差不大....
    jboss也说差不多的..
      

  12.   

    会快吗?不会吧,我没试过,不过,通过sessionbean和直接访问entitybean都要通过远程接口,通过sessionbean还要再过一层entitybean的lacol接口,没道理会快的啊,但是这是一个设计模式的问题,最好用sessionbean来访问entitybean,这样封装性好,底层的改动对上层影响小,这个偶可是实践过的说,偶的数据库改了很多,但改变到sessionbean这层就差不多被封起来了,对外接口都不用变。
      

  13.   

    还有,虽说书上说local接口会比remote接口快,但实际上好像没太大区别,我一个同学测过的