您的位置: 首页 >> 新闻中心 >> 计算机 >> 软件开发
软件设计:EJB设计模式2
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
正辰培训 微软软件测试工程师电话预约西直门教学区¥4704
新 科 海 软件测试工程师就业班电话预约海淀长远天地¥6280
北师大IT 软件工程与测试实战班电话预约北京师范大学¥1800
北师大IT 高级网络工程师就业班电话预约北京师范大学¥13000
金 同 方 网络工程师就业周末班电话预约人大总部¥7000
  为了避免设计模式1的缺点,我们介绍一下封装entity bean值域的value objec的概念。value object,用某些语言的术语来说,就是一个结构类型,因为他们
和corba的结构类型非常类似。
 value Object code snippet for Company
 public class CompanyStruct implements
  java.io.Serializable {
  public Integer comId; //Primary Key
  public String comName;
  public String comDescription;
  public java.sql.Timestamp mutationDate;
  }
 value Object code snippet for Employee
 public class EmployeeStruct implements
 java.io.Serializable {
  public Integer empId; //Primary Key
  public Integer comId; //Foreign Key
  public String empFirstName;                                                                                                                                                                public String empLastName;
  public java.sql.Timestamp mutationDate;
 }

  现在,公司和雇员的entity bean可以把上面的一个结构类型作为ejbCreate()的一个参数。由于这个结构封装了entity的所有字段的值,entity bean只需要一个getdata()和setdata()方法就可以对所有的字段进行操作。

 Code snippet for an Entity Bean’s create()
 public Integer ejbCreate(CompanyStruct struct) throws
 CreateException {
 this.comId = struct.comId;
 this.comName = struct.comName;
 this.comDescription = struct.comDescription;
 this.mutationDate = struct.mutationDate;
 return null;
 }
 Code snippet for an Entity Bean’s getData()
 public CompanyStruct getData() {
 CompanyStruct result = new CompanyStruct();
 result.comId = this.comId;
 result.comName = this.comName;
 result.comDescription = this.comDescription;                                result.mutationDate = this.mutationDate;
 return result;
 }
 Code snippet for an Entity Bean’s setData()
 public void setData(CompanyStruct struct) {
 this.comName = struct.comName;
 this.comDescription = struct.comDescription;
 this.mutationDate = struct.mutationDate;;
 }


  跟设计模式1中使用单独的get()和set()方法去操作特定字段不同,在设计模式2中,我们避免这种情况而只需要进行一次远程调用就可以了。现在,只有一个事务通过一次远程调用就操作了所有的数据。这样,我们就避免了设计模式1的大部分缺点,除了建立bean之间的关系外。虽然setdata()方法可以对所有字段赋值,但是,borland appserver提供了一种智能更新的特性,只有被修改过的字段才会被重新写入数据库,如果没有字段被修改,那么ejbStore()方法将会被跳过。borland程序员开发指南(EJB)有更详细的描述。同样,在entity bean和struct之间存在这重复的代码,比如同样的字段声明。这意味着任何数据库表结构的修改都会导致entity beabn和struct的改变,这使得同步entity和struct变得困难起来。


  就是在ebCreate()方法中调用setddata()方法,这可以消除一些冗余的代码。
 Code snippet for an Entity Bean’s create()
 public Integer ejbCreate(CompanyStruct struct) throws
 CreateException {
 this.comId = struct.comId; //set the primary key
 setData(struct);//this removes some redundant code
 return null;
 }

下一篇:软件设计:EJB设计模式1

  第一个设计模式非常简单。一个公司和雇员的Entity Bean和下面给出的Entity Bean的代码片断是类似的。它们是由jbuilder4的EntityBean模版生成的。所有的字段都声明为public的cmp字段。
Code snippet for Company Entity Bean
public class CompanyBean implements EntityBean {
  EntityContext entityContext;
  public Integer comId; //the primary key
  public String comName; //the company name
  public String comDescription //basic description
 ...[查看详情]

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:软件设计:EJB设计模式3
下一篇:软件设计:EJB设计模式1
 相关新闻
·有关光纤网卡和主机总线适配器区别分析·综合布线系统在各类不同建筑的应用简介
·布线管理软件CAMS对网管工作的影响简介·制作携带起来更方便的多功能网线
·华为引入CTBS“随需应变”解决数据集中·艾泰HiPER改造无锡二泉太阳能网络
·艾泰科技助溧水县鑫牛商贸摆脱网络困惑·“社会主义新农村”的无线网络方案
·曙光防火墙为河北电力量身打造网络安全·卓尔UTMAV终结者解决方案
·河北联通数据网用户接入应用案例·天清IPS:西北工业大学IPS方案解析
·HiPER助力南钢能源中心信息化应用·浅论阴阳太极与UML建模[1]
·浅论阴阳太极与UML建模[2]·软件设计:EJB设计模式1
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·软件测试新手的修炼之路
·Smarty简体中文参考手册
·Struts中文手册
·Struts快速学习指南
·ultradev动态网页制作教程
·UML工具箱
·《设计模式》中文版
·学友Flash伴侣 1.11
·阿须图像水印(AssureMark)V2.0
·超级语霸
相关试题
·2008年云南公务员考试专业试卷之科技环保
·2008年云南公务员考试试卷之教育文化类专
·2008年云南公务员考试试卷参考答案之科技
·2008年云南公务员考试试卷参考答案之教育
·2008年公务员考试科教管理类专业试卷参考
·2008年公务员考试科教管理类专业试卷(云
·2007年全国CPA考试试卷及答案解析之《会
·2007年CPA试卷及答案解析之《财务成本管
·2008年注会考前模拟试题之《财务成本管理
·2007年全国CPA《税法》考试试卷及答案解
相关热贴
·如何改QQ IP地址!
·恰当选择软件测试自动化方案
·ADO.NET学习总结
·.net操纵xml文件类(c#)
·Log4net教程
·VPN技术详解
·高手必读 网络端口安全防护技巧放送
·访问XP共享出现的问题解决办法
·Web2.0时代,RSS你会用了吗?(技术实现总
·.NET下正则表达式应用的四个示例