简单的说,CMP就是容器管理实体BEAN,它的所有关于数据库的连接,以及SQL语句的执行都由EJB容器管理运行!BMP就是通过自己编写数据库的连接和执行SQL语句的BEAN!

解决方案 »

  1.   

    谢谢楼上的回答,只是这些理论上的区别我也知道啊.我的问题是在实际操作上有什么区别呢?比如在BMP中我们应该在哪里写那些连接的SQL呢?
    还有是不是通过JBX等工具生成CMP中那些SQL在哪里呢,或者说BMP比CMP缺少哪些文件呢?
      

  2.   

    在哪里写,当然是在你的业务方法里也拉,写一个共用方法getConnection,然后在你的业务方法里写你的sql就可以了啊。
      

  3.   

    BMP需要像普通JAVABEAN中实现SQL一样,把所有SQL写在业务方法中。
      

  4.   

    那业务逻辑具体到那个文件呢?比如说是EJBOject,EJBHome,entityBean等等
      

  5.   

    BMP和CMP相比,不是少了什么文件,反而是需要你自己编写一些诸如获取数据库连接、断开数据库连接的操作。此时,你需要实现EntityBean接口的一些方法,如在ejbActivate()中编写获取数据库连接的代码,在ejbPassivate()中编写释放数据库连接的代码,在ejbLoad()方法中编写读取数据库数据以同步数据的代码,在ejbRemove()方法中编写删除对应数据库数据的代码,在ejbStore()方法中编写保存数据到数据库的代码,等等。以上方法不是一定都需要实现的,视你的具体情况而定。
    另,业务逻辑可以写在Entity Bean 中,但推荐另外写一个Session Bean专门用于业务逻辑的处理,该Session Bean可以调用一个或多个Entity Bean
      

  6.   

    你试着写一个CMP,打包成jar文件以后,把它解开。看看打包的时候都生成了什么文件,你会找到答案的