RSS
热门关键字:  java  Ajax  JSP  JSF  Struts
当前位置 : 首页>Hibernate>列表

hibernate笔记总结二

来源: 作者: 时间:2007-08-18 点击:
用JDBC API的方法来实现数据库的访问有下面的缺点:
     业务逻辑的代码和数据库的访问代码杂在一起,使程序结构不清晰,可读性差
     在程序代码中嵌入面向关系的SQL语句,使开发人员不能完全运用面向对象的思想来编写程序
     业务逻辑和关系数据模型绑定,如果关系数据模型发生变化,如:修改了表的结构,那么必须手动修改程序
     中的代码和相关的SQL语句

   为了使业务逻辑和数据库访问细节分离,在JAVA中已经出现下面模式:
    ORM,主动域对象模式,JDO模式,CMP模式

  对象关系映射的概念:
  域模型和关系模型都是分别建立在概念模型的基础之上,域模型是面向对象的,而关系模型是面向关系的
  一般情况下,一个持久化的类和一个表对应,类的每个实力对象对应表中的一条记录

  对象持久化技术:
  Session接口向业务逻辑层提供了读,写和删除域对象的方法,它不公开任何数据访问细节,SessionImpl实现了该接口
  ,SessionFactory类负责创建Session实例,Hibernate在初始化阶段把对象-关系映射文件中的映射元数据读入到SessionFactory的
  缓存

  主动域对象模式的优点:
   BMP就是一个主动域对象模式,由EJB实现本身的访问细节,   在实体域对象中封装自身的数据访问细节,过程域对象完全负责逻辑,使程序结构更加清晰,
   如果关系数据模型发生改变,只需要修改主动域对象的代码,不需要修改过程域对象的业务方法.
  主动域对象的缺点:
   在实体对象中仍然包含SQL语句,每个实体域对象都负责自身的数据访问实现,把这一职责分散到对个对象中,这会导致实体域对象重复实现一些共同的数据访问操作m
   造成重复代码.
   ‌因为主动域对象本身是业务逻辑层,因此采用主动域对象模式时,整个应用仍然是三层结构,并没有从业务逻辑层分离出独立的持久化层
  

  JDO(Java Data Objects)模式:
   是SUN公司指定的描述对象持久化语义的标准API,因此,采用JDO模式时,整个应用为四层应用结构,表述层->业务逻辑层->JDO API,JDO实现,JDBC API,数据库层,
   严格的说 JDO并不是对象-关系映射的接口,因为它支持把对象持久化到任意一种存储系统中,包括(关系数据库,面向对象的数据库,基于XML的数据库,其他专有存储系统)
  
  EJB:
    EJB容器封装了对象-关系映射及数据访问细节,CMP和ORM的相似在于,两者都提供对象-关系映射服务,都把对象持久化的任务从业务逻辑程序中分离出来,区别在于CMP持久化
    实体EJB组件,ORM持久吧POJO(Plain Old Java Object(普通又古老的JAVA对象)),它是普通的基于Java Bean形式的实体域对象,

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
Google Adsense
相关文章