• Hibernate学习之对象持久化


    1.  对象持久化

    对象的持久化就是把内存中对象形式的业务数据,转换成数据库中的关系数据形式的业务数据。广义理解,对象的持久化还包括内存与关系数据库之交换业务数据的各种操作。

    2. 对象持久化模式

    1. 直接通过JDBC(java database connectivity) API来持久化实体域对象

    实体域对象的持久化最终必须通过数据库访问代码来实现。java.sql包中提供了JDBC API,常用的接口和类有以下内容:

    DriverManager:  驱动程序挂历器,负责创建数据库连接
    Connection:代表数据库连接

    Statement:  负责执行SQL语句

    PreparedStatement:负责执行SQL语句,具有预定义SQL语句的功能

    ResultSet:代表SQL查询语句的查询结果集

         缺点:
    1. 实现业务逻辑和数据库访问代码掺杂在一起

    2. 程序代码中嵌入面向关系的SQL语句,开发人员不能完全运用面向对象的思维来编写程序

    3. 业务逻辑被迫与关系数据模型绑定。如果关系数据模型变化,如表结构发生变动,就需要修改所有的相关SQL语句

    2. ORM(object - relation Mapping)中间件模式

     1)  ORM(对象关系映射)模式指在一个组件中负责所有实体域对象的持久化,封装数据访问细节。

     2)  ORM中间件采用元数据描述对象-关系映射细节,元数据通常采用XML格式文件,并且存放在专门的对象 - 关系 映射文件中。

     3)  常用的ORM中间件:hibernate, toplink, torque等。

            3.  实体域其他的持久化模式

     实体域持久化模式除了ORM外,还有以下几种模式:

     1)  主动域对象模式

        该模式是在实体域对象中封装了关系数据模型和数据的访问细节。 

     2) JDO模式

       Java Data Objects 是Sun公司制定的描述对象持久化语义的标准API.,该模式下,整个应用分为四层。


      3) CMP模式

    CMP(Container-managed Persistence) 表示由EJB容器来管理实体EJB的持久化,EJB容器封装了对象-关系的映射和数据访问细节。


    CMP与ORM的相似点:

    a:都提供了对象-关系映射服务

    b:都把对象持久化的任务从业务逻辑中分离出来

     区别:

    a:CMP负责持久化实体EJB组件,而ORM负责持久化POJO,POJO是普通的基于JavaBean的实体域对象。

  • 相关阅读:
    考察数据结构(An Extensive Examination of Data Structures)
    考察数据结构——第一部分:数据结构简介[译]
    老生常谈
    使用DataSet的ReadXml和WriteXml方法
    要掌握Sql Server,我还差得远啊!
    新浪短信Web Service
    还是水晶报表
    两种报表组件的功能分析
    无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(4)显示记录
    c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
  • 原文地址:https://www.cnblogs.com/marcotan/p/4256960.html
Copyright © 2020-2023  润新知