一、EJB的好处:
    EJB 组件使编写应用程序更为简单。尽管 EJB 体系结构复杂,但应用程序开发人员一般都不必再编写用于访问系统服务的代码。一种称为 EJB 容器的系统组件使系统服务可用于 EJB 组件的任务。
服务器端商务逻辑可以移植。除了 Java 语言固有的可移植性外,EJB 体系结构还在 bean 和支持该 bean 的容器之间提供了一套标准化的应用程序编程接口。这使开发人员能够将 bean 从一种操作环境移植到另一种操作环境,而无须重新编写其源代码。
    可以从现有的软件组件装配出服务器端应用程序,这与从现有的 Java bean 可以装配出客户端应用程序一样,从而使软件能够重用。
EJB 体系结构内置了对典型企业级系统服务的支持,包括分布式对象、事务处理、数据库、安全和全局命名。
    多家 IT 供应商都采纳 EJB 体系结构,这是由于有这样的承诺:客户将能够  从选定的供应商那里选购软件组件,如 EJB 组件、容器及 EJB 服务器;也由于承诺了不同供应商的产品,只要符合 EJB 体系结构,就都是可互操作的。
    用 EJB 组件构建的应用程序可以从一个服务器移植到另一个服务器,从而支持可伸缩性,这是因为在 EJB 模型中,各个软件组件都是严格分离的。
EJB 体系结构能保障原有的 IT 投资,这是通过允许将现有的信息系统和资产“包裹”在这些应用程序中,而不要求客户更换现有技术。事实上,在关系数据库中存储数据的企业已经有了一套已有雏形的实体 bean,正等着通过 EJB 外壳去访问。
    二、About session beans 和Entity beans:
    Session beans代表在一个会话中的一个客户端执行的特定的业务任务。它们可以是有状态的,也可以是无状态的,但不是持久的。当客户端完成了一个session beans的调用时,该bean就消失了。
    Entity beans表示一个数据存储(通常是关系型数据库)中的业务对象。对象的持久性--载入和保存对象--可以是bean管理的,也可以是容器管理的。Entity beans不仅仅是长驻内存的数据对象,它还拥有其代表业务对象行为的方法。Entity beans可以被多个客户端调用。按照定义,Entity beans是持久的。
    其实,我的理解如同COM或DCOM一样,有定义好的接口,你的任务就是实现这些接口。
    三、问题对照:
    1、使用Entity beans可以使对于数据库的管理交给容器去管理,我们不需要直接参与。对于一个大型的系统这一点是很重要的,分工明细是关键的。
    2、按照定义是这样的,Entity Beans是会存在那么多。
    3、如果你正在写EJB的东西,那么我建议,对于单表的Inert、Update、Delete请使用Entity beans.如果涉及到多表的查询,请在你的体系中加入Dao,使用JOdbc来连接数据库,进行查询。
    4、规则就是规则,有了就要遵守,被什么好讲的。    OK!说了这么多,希望对你有帮助。

解决方案 »

  1.   

    补充:
        Entity beans代表底层数据库的一个表,则其实例和数据库记录间就是一对一的关系。因为多个客户端必须访问底层记录,而且Entity beans是可以被共享的,所以一个大型项目这样做会给系统节省很多的资源。一万人访问一个表,如果用JODBC会有10000个连接而用Entity beans则只有一个“连接”。你觉得如何?Entity beans是分布式的,涉及到数据库还有很多麻烦的事,比如是那种连接(thin or fat),各种连接有各种不同的优缺点,相对于Entity beans来说就都是缺点了。