Entity Bean与Session Bean 他们两个有什么区别,来者有分 差别太大了,简单的说,一个是固定对象,用来对复杂的对象进行持久化建模;一个仅仅用来完成特定商业逻辑操作。举个简单的例子:EJBPeople是一个Entity bean, EJBGetBalance是一个SessionBean.中文对应的意思是实体Bean 和会话Bean(我觉得名叫功能Bean可能更容易理解:)) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能不能具体点,主要是实体bean 实体bean用来代表持久的商务实体(数据)。最常用的是用实体bean代表关系库中的数据。一个简单的实体bean可以定义成代表数据库表的一个记录,也就是每一个实例代表一个特殊的记录。更复杂的实体bean可以代表数据库表间关联视图。在实体bean中还可以考虑包含厂商的增强功能,如对象--关系映射的集成。 通常用实体类代表一个数据库表比代表多个相关联的表更简单且更有效。反过来可以轻易地向实体类的定义中增加关联,这样可以最大地复用cache并减小旧数据的表现。 实体bean和对话bean的比较 看起来会话bean好象没什么用处,尤其对于数据驱动的应用程序。当然事实并不是这样。因为实体bean(譬如说)代表底层数据库的一行,则实体bean实例和数据库记录间就是一对一的关系。因为多个客户端必须访问底层记录,这意味着,不同于会话bean,客户端必须共享实体bean。因为是共享的,所以实体bean不允许保存每个客户端的信息。会话bean允许保存客户端的状态信息,客户端和会话bean实例间是一对一的。实体bean允许保存记录的信息,实体bean实例和记录间是一对一的。一个理想的情况是客户端通过会话bean连接服务器,然后会话bean通过实体bean访问数据库。这使得既可以保存客户端的信息又可以保存数据库记录的信息。 同时会话bean也不能提供在相同或不同的EJB类调用间进行全局的事务控制。没有会话bean,应用程序开发者(客户端开发者)就必须理解EJB类的事务要求,并使用客户端的事务划分来提供事务控制。EJB的主要好处就是应用开发者不需知道EJB类的事务需求。一个会话bean可以代表一个商业操作,进行事务控制,不需要客户端进行事务划分。 SessionBean封装过程;EntityBean封装数据。· Session Bean Session Bean在J2EE Server上代表的是一个Client。Client通过调用Session Bean的方法来访问远程服务。Session Bean为它的Client完成特定的工作,并通过在server端运行business tasks,向Client屏蔽了实现的复杂性。 Session Beans有两种状态管理模式:Stateful和Stateless Stateless Session Bean不能够维持一个调用客户的状态。在一个方法调用的过程中,Stateless Session Bean可以维持调用客户的状态,但是当方法执行完时,状态不会被保持。在调用完成后,Stateless Session Bean被立即释放到缓冲池中,所以Stateless Session Bean具有很好的伸缩性,可以支持大量用户的调用。 Stateful Session Bean可以一对一的维持某个调用客户的状态,并且在不同的方法调用中维持这个状态, 由于对于每一个并发用户,必须有一个对应的Stateful Session Bean,为了提高系统的效率,Stateful Session Bean可以在一定的客户空闲时间后被写入二级存储设备(如硬盘),在客户发出新的调用请求后,再从二级存储 设备恢复到内存中。 · Entity Bean Entity Bean代表的是持续储存机制中的一个企业对象。它的持续可以被Entity Bean自己管理,也可以由EJB容器来管理。 Entity Bean代表数据库或另外一个企业应用系统中的数据对象,如代表数据库的一行记录。和Session Bean不同,Entity Bean是持久的(persistent),允许共享访问。持久性(Persistence)是指Entity Bean的状态不依赖于应用服务器而存在。因为Entity Bean是底层数据库记录的映像,会和数据库记录保持同步,所以,即使当应用服务器崩溃或停止运行,Entity Bean的状态还会保存在数据库中,不会丢失。 其实说白了,就是对数据库表的更新,删除,插入操作最好使用实体bean对数据库表的查询,可以使用session bean sessionbean 实现业务逻辑, entitybean实现数据的缓存,相当于视图,不过不是在数据库中。 就我现在用的来说,entitybean用来和数据进行连接,主要用它来增,删,改查sessionbean用来实现复杂的逻辑,商务方法 一对多,一修改后,多的外键被清空了。 spring配置jdbc java.lang.NumberFormatException 这种情况要验证吗? hibernate 左连接求救,急啊。。。 抽象类是个什么东东啊,谁能用文字帮我解释一下啊,为什么需要抽象类? tomcat无法启动? 谁知道j2ee的规范都有哪些? 求高手点拨:BS结构的程序相较CS结构的程序的弱点。 JBoss3.2.3如何变成开发模式?现在编译一个Servlet或者是Java类,都需要重新启动才能生效 hibernate 多对一 映射出错 为什么出现以下异常?如何解决? 高手解答!!!
通常用实体类代表一个数据库表比代表多个相关联的表更简单且更有效。反过来可以轻易地向实体类的定义中增加关联,这样可以最大地复用cache并减小旧数据的表现。
实体bean和对话bean的比较
看起来会话bean好象没什么用处,尤其对于数据驱动的应用程序。当然事实并不是这样。因为实体bean(譬如说)代表底层数据库的一行,则实体bean实例和数据库记录间就是一对一的关系。因为多个客户端必须访问底层记录,这意味着,不同于会话bean,客户端必须共享实体bean。因为是共享的,所以实体bean不允许保存每个客户端的信息。会话bean允许保存客户端的状态信息,客户端和会话bean实例间是一对一的。实体bean允许保存记录的信息,实体bean实例和记录间是一对一的。一个理想的情况是客户端通过会话bean连接服务器,然后会话bean通过实体bean访问数据库。这使得既可以保存客户端的信息又可以保存数据库记录的信息。
同时会话bean也不能提供在相同或不同的EJB类调用间进行全局的事务控制。没有会话bean,应用程序开发者(客户端开发者)就必须理解EJB类的事务要求,并使用客户端的事务划分来提供事务控制。EJB的主要好处就是应用开发者不需知道EJB类的事务需求。一个会话bean可以代表一个商业操作,进行事务控制,不需要客户端进行事务划分。
· Session Bean
Session Bean在J2EE Server上代表的是一个Client。Client通过调用Session Bean的方法来访问远程服务。Session Bean为它的Client完成特定的工作,并通过在server端运行business tasks,向Client屏蔽了实现的复杂性。
Session Beans有两种状态管理模式:Stateful和Stateless
Stateless Session Bean不能够维持一个调用客户的状态。在一个方法调用的过程中,Stateless Session Bean可以维持调用客户的状态,但是当方法执行完时,状态不会被保持。在调用完成后,Stateless Session Bean被立即释放到缓冲池中,所以Stateless Session Bean具有很好的伸缩性,可以支持大量用户的调用。
Stateful Session Bean可以一对一的维持某个调用客户的状态,并且在不同的方法调用中维持这个状态, 由于对于每一个并发用户,必须有一个对应的Stateful Session Bean,为了提高系统的效率,Stateful Session Bean可以在一定的客户空闲时间后被写入二级存储设备(如硬盘),在客户发出新的调用请求后,再从二级存储 设备恢复到内存中。
· Entity Bean
Entity Bean代表的是持续储存机制中的一个企业对象。它的持续可以被Entity Bean自己管理,也可以由EJB容器来管理。
Entity Bean代表数据库或另外一个企业应用系统中的数据对象,如代表数据库的一行记录。和Session Bean不同,Entity Bean是持久的(persistent),允许共享访问。持久性(Persistence)是指Entity Bean的状态不依赖于应用服务器而存在。因为Entity Bean是底层数据库记录的映像,会和数据库记录保持同步,所以,即使当应用服务器崩溃或停止运行,Entity Bean的状态还会保存在数据库中,不会丢失。
对数据库表的查询,可以使用session bean
sessionbean用来实现复杂的逻辑,商务方法