zoukankan      html  css  js  c++  java
  • 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的实体域对象。

  • 相关阅读:
    Linux中gdb 查看core堆栈信息
    爱因斯坦名言
    Symbian OS 源码下载方式
    Windows 2003+VS2005+SP1 “无法使用此产品的安装源,请确认安装源存在,并且您可以访问它”的错误
    Visual Studio 2012 Ultimate RTM 序列号
    STL容器erase的使用陷阱
    C++ 迭代器失效
    C++ 类的静态成员详细讲解[静态成员变量链接错误]
    Ubuntu 启动黑屏解决
    android中KSOAP2中的anytype{}问题
  • 原文地址:https://www.cnblogs.com/marcotan/p/4256960.html
Copyright © 2011-2022 走看看