4.1.3 实体域模型与关系数据模型
模型是对现实的一种抽象。
实体域模型则是对真实世界中的物质实体(如学生、老师、商品等)的抽象,它由实体域对象组成,实体域对象用来代表这些真实世界中的物质实体。在Java EE应用中,实体域对象是指实体EJB或POJO(JavaBean形式的实体域对象),若无特别声明,本书所说的实体域对象默指POJO。
例如,在客户关系管理系统中城市实体类City.java为:
}
publicvoidsetCitycode(java.lang.String citycode){
this.citycode = citycode;
}
// cityname的get/set方法对
publicjava.lang.String getCityname(){
returnthis.cityname;
}
publicvoidsetCityname(java.lang.String cityname){
this.cityname = cityname;
}
// clientSet的get/set方法对
publicjava.util.Set getClientSet(){
returnthis.clientSet;
}
publicvoidsetClientSet(java.util.Set clientSet){
this.clientSet = clientSet;
}
//重载Object的equals方法
publicbooleanequals(Object rhs){
if(rhs ==null)
returnfalse;
if(! (rhsinstanceofCity))
returnfalse;
City that = (City) rhs;
if(this.getCityid() ==null|| that.getCityid() ==null)
returnfalse;
return(this.getCityid().equals(that.getCityid()));
}
//重载Object的hashCode方法
publicinthashCode(){
if(this.hashValue ==0)
{
intresult =17;
intcityidValue =this.getCityid() ==
null?0:this.getCityid().hashCode();
result = result *37+ cityidValue;
this.hashValue = result;
}
returnthis.hashValue;
}
}
目前,关系型数据库的应用最为广泛,关系数据模型便是对关系型数据库中关系数据(如表、视图等)的一种静态描述。
例如,与上面City实体域对象对应的关系模型如表4-1所示。
表4-1 City数据表
字 段 名 称
数 据 类 型
主键
自增
允 许 为 空
描述
cityid
int
是
增1
城市ID
provinceid
int
√
所属省份ID
citycode
varchar(20)
√
城市代号
cityname
varchar(40)
√
城市名称
读者也可以使用E-R图来描述关系模型,例如,某电子商城的关系模型如图4-3所示。
综上所述,实体域模型是面向对象的,而关系数据模型是面向关系型数据库的,它们之间的数据交换需要一个映射的过程。
例如,实体域对象City与关系数据表city之间可通过Hibernate的映射配置文件City.hbm.xml进行映射。
【责任编辑:董书 TEL:(010)68476606】
点赞 0