当前位置: 技术问答>java相关
实体Bean问题请教!
来源: 互联网 发布时间:2015-10-17
本文导语: 看到一般的资料上说,一个实体Bean的实例对应一个表中的一条数据,而一个实体Bean也是对一个表进行操作。 那是不是每个要操作的表都要建一个对应的实体Bean,然后为了实现MVC开发模式,又要为这些实体Bean每个建...
看到一般的资料上说,一个实体Bean的实例对应一个表中的一条数据,而一个实体Bean也是对一个表进行操作。
那是不是每个要操作的表都要建一个对应的实体Bean,然后为了实现MVC开发模式,又要为这些实体Bean每个建一个对应的会话Bean呢?那如果一个系统要操作很多的表(N个),那不是要建N个会话Bean和N个实体Bean啊?
我是一个新手,很多方面还不理解EJB,希望大家多指点,谢谢!
那是不是每个要操作的表都要建一个对应的实体Bean,然后为了实现MVC开发模式,又要为这些实体Bean每个建一个对应的会话Bean呢?那如果一个系统要操作很多的表(N个),那不是要建N个会话Bean和N个实体Bean啊?
我是一个新手,很多方面还不理解EJB,希望大家多指点,谢谢!
|
这个涉及到用对象的粒度问题。并不是所有的持久对象都要用EntityBean来实现,这样的系统开销太大,J2ee框架里面EntityBean一般对粗粒度的对主要对象实现entitybean,而且SessionBean跟EntityBean的关系也不是一对一的关系sessionBean 可以跟一个或者多个或者0个EntityBean交互,Session Facade模式对此有详细描述。
而且持久对象的管理实现方式,比较多,可以直接通过JDBC来做,也可以用EntityBean来实现,也可以用JDO来实现。用EntityBean来实现的好处是容器帮你维护了并发控制、事务,安全,负载均衡等等,但是开销也大一些……
所以一般只对主要的持久对象实现EntityBean,而且只读对象也没必要用EntityBean实现……
而且持久对象的管理实现方式,比较多,可以直接通过JDBC来做,也可以用EntityBean来实现,也可以用JDO来实现。用EntityBean来实现的好处是容器帮你维护了并发控制、事务,安全,负载均衡等等,但是开销也大一些……
所以一般只对主要的持久对象实现EntityBean,而且只读对象也没必要用EntityBean实现……
|
其实,在使用EJB时,你需要考虑的第一个问题就是,为什么要用EJB。
众所周知,EJB用来表示持久性数据。但是,SessionBean也可以用来表示数据。这就有一个选择问题。其实,用实体BEAN就是想获得EJB容器提供的服务和面向对象的数据表示。但,要是只牵扯读取DB中的数据,就没必要使用实体BEAN。其他的上面的几位已说的很清楚了。
众所周知,EJB用来表示持久性数据。但是,SessionBean也可以用来表示数据。这就有一个选择问题。其实,用实体BEAN就是想获得EJB容器提供的服务和面向对象的数据表示。但,要是只牵扯读取DB中的数据,就没必要使用实体BEAN。其他的上面的几位已说的很清楚了。
|
不用的,你可以只用一个entity bean 。(用BMP是绝对可以的,CMP嘛,没试过。)
|
一个session bean可以相应不同的entity bean提供不同的方法阿