当前位置: 技术问答>java相关
ejb设计的问题
来源: 互联网 发布时间:2015-09-14
本文导语: 访问数据库可用session bean同过jdbc,也可以直接用entity bean 我想问怎样的情况下设计成entity bean 什么时候不用呢 谈谈具体项目的体会吧 | 除了对数据进行对象化的封装外(这个是对设计模式弄...
访问数据库可用session bean同过jdbc,也可以直接用entity bean
我想问怎样的情况下设计成entity bean
什么时候不用呢
谈谈具体项目的体会吧
我想问怎样的情况下设计成entity bean
什么时候不用呢
谈谈具体项目的体会吧
|
除了对数据进行对象化的封装外(这个是对设计模式弄得很熟太体会得到的了)...
最直接的好出是
entitybean 可以想象成CPU的高速缓冲一样
当你需要频繁地对一个表操作(更新,修改)时
比如说记录用户的配置表,同时该表的某些用户更新频率很高,比如常登录论坛吹水的人:)
那么你就应该考滤使用entity bean了
因为EJB容器会为实体bean提供缓冲能力经常使用的那个bean,一直保存在内存当中
当用户使用findByPrimaryKey查找时,可以马上从组件池中取回这个bean的实例
而对它进行set,get操作时...性能会比直接操作数据库高得多.这个原因我想也不必说了...
最直接的好出是
entitybean 可以想象成CPU的高速缓冲一样
当你需要频繁地对一个表操作(更新,修改)时
比如说记录用户的配置表,同时该表的某些用户更新频率很高,比如常登录论坛吹水的人:)
那么你就应该考滤使用entity bean了
因为EJB容器会为实体bean提供缓冲能力经常使用的那个bean,一直保存在内存当中
当用户使用findByPrimaryKey查找时,可以马上从组件池中取回这个bean的实例
而对它进行set,get操作时...性能会比直接操作数据库高得多.这个原因我想也不必说了...
|
会话 Bean 用于管理实体 Bean 和其它会话 Bean 的交互、访问资源,它们通常代表客户机执行任务。会话 Bean 对应于“模型-视图-控制器”体系结构中的控制器,因为它们都封装三层体系结构中的商业逻辑。
会话 Bean 有两种基本类型:无状态和有状态。无状态会话 Bean 包括类似于过程的商业方法;它们只对在被调用时传递给它们的自变量进行操作。无状态 Bean 之所以称作无状态是因为它们是过渡的;他们不维护方法调用之间的商业状态。有状态会话 Bean 封装商业逻辑和特定于某个客户机的状态。有状态 bean 之所以称作“有状态”是因为它们维护方法调用之间的商业状态,状态保留在内存中,并不持久。
实体 Bean 是两种主要 bean(实体和会话)中的一种。实体 Bean 用于表示数据库中的数据。它向 JDBC 或其它一些后端 API 经常访问的数据提供了一个面向对象的接口。不仅如此,实体 Bean 提供了一个组件模型,可以让 bean 开发人员将精力集中在 bean 的商业逻辑上,而容器负责管理持续、事务和访问控制。
有两种基本的实体 Bean:容器管理的持续 (CMP) 和 bean 管理的持续 (BMP)。容器使用 CMP 管理实体 Bean 的持续。供应商工具用于将实体字段映射到数据库,并且绝对没有数据库访问代码写入 bean 类。使用 BMP,实体 Bean 包含了数据库访问代码(通常是 JDBC),负责读取其自身状态并将此状态写入数据库。BMP 实体对此有很大帮助,因为容器将提醒 bean 何时需要更新状态或从数据库读取状态。容器还可以处理任何锁定或事务,因此数据库可以保持完整性。
会话 Bean 有两种基本类型:无状态和有状态。无状态会话 Bean 包括类似于过程的商业方法;它们只对在被调用时传递给它们的自变量进行操作。无状态 Bean 之所以称作无状态是因为它们是过渡的;他们不维护方法调用之间的商业状态。有状态会话 Bean 封装商业逻辑和特定于某个客户机的状态。有状态 bean 之所以称作“有状态”是因为它们维护方法调用之间的商业状态,状态保留在内存中,并不持久。
实体 Bean 是两种主要 bean(实体和会话)中的一种。实体 Bean 用于表示数据库中的数据。它向 JDBC 或其它一些后端 API 经常访问的数据提供了一个面向对象的接口。不仅如此,实体 Bean 提供了一个组件模型,可以让 bean 开发人员将精力集中在 bean 的商业逻辑上,而容器负责管理持续、事务和访问控制。
有两种基本的实体 Bean:容器管理的持续 (CMP) 和 bean 管理的持续 (BMP)。容器使用 CMP 管理实体 Bean 的持续。供应商工具用于将实体字段映射到数据库,并且绝对没有数据库访问代码写入 bean 类。使用 BMP,实体 Bean 包含了数据库访问代码(通常是 JDBC),负责读取其自身状态并将此状态写入数据库。BMP 实体对此有很大帮助,因为容器将提醒 bean 何时需要更新状态或从数据库读取状态。容器还可以处理任何锁定或事务,因此数据库可以保持完整性。
|
楼上说得也不对吧,直接操作数据库最快,Entity还要做数据库数据到java对象的转换工作,这个也是比较消耗时间的
|
支持realplay(扛军棋)
如果是对一个表的频繁操作,用entitybean是不错的,直接读数据库开销太大了
如果是比如作统计啊之类涉及到大量记录的,我想还是直接用JDBC好一点,要不然bean的数量太多了,而又没有重复使用的,性能就慢得要死,几十万个bean实例在服务器上,服务器早垮掉了
如果是对一个表的频繁操作,用entitybean是不错的,直接读数据库开销太大了
如果是比如作统计啊之类涉及到大量记录的,我想还是直接用JDBC好一点,要不然bean的数量太多了,而又没有重复使用的,性能就慢得要死,几十万个bean实例在服务器上,服务器早垮掉了