关闭

Hibernate基本原理篇(一)

405人阅读 评论(3) 收藏 举报
分类:
    说起hibernate大家脑中都很熟悉,知道Hibernate是一个开放源代码的对象关系映射框架,它对Jdbc进行了非常轻量级的对象封装。

    Hibernate在英文中的意思是:冬眠、蛰伏。这我们就应该想了,那么冬眠和持久化对象之间有什么关系呢,我们知道 对象只能存在于内存中,当程序运行起来后会创建对象,当程序运行结果那么这些对象就随之消失,我们更多时候是需要将这些对象永久保存到数据库中,那么形象的理解Hibernate就是将这些对象在关系型数据库中冬眠!

    那么我们框架中的hibernate是什么呢?

一.它是连接Java应用程序和关系数据的中间件(组件)

    中间件就是一种软件的半成品,Hibernate就是帮忙我们解决操作数据库的问题。以后我们就不需要用JAVA的CONNECTION等对象.

   

    由Hibernate操作JDBC,简化我们操作数据库,提高开发效率。

二.它对JDBC API进行了封装,负责JAVA对象的持久化(就是保持到数据库里)

    持久化,我们说了很多次,那么什么事持久化呢?

    持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在的数据库中,或者存储在磁盘文件中、XML数据文件中等等。

    持久化是将程序数据在持久状态和瞬时状态间转换的机制。

    JDBC就是一种持久化机制。文件IO也是一种持久化机制。

   日常持久化的方法

   将鲜肉冷藏,吃的时候再解冻的方法也是。

   将水果做成罐头的方法也是。

   将人的脏器迅速冷冻,运输,然后解冻给人移植的技术也是.

  

三.在分层软件体系中它位于持久化层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑

四.它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射。

    ORM-ObjectRelation Mapping

    为什么O和R之间需要映射?

    因为模型不匹配,对象和数据库的模型不匹配,在JAVA中数据是放在对象中的,而我们的数据库是关系弄的,如何把对象中的数据插入到数据库的呢?

    是用INSERT语句,把对象中的数据取出来插入到数据库中,这就是一种映射,就是把JAVA对象中的数据取出来对应到数据库的INSERT对应的字段里

    所以我们在用JDBC插入数据的时候我们一直在做MAPPING的事情。所以Hibernate的作用就是把JAVA对象自动对应到数据库的字段中。

   

    ORMapping基本对应规则:

    1:类跟表相对应

    2:类的属性跟表的字段相对应

    3:类的实例与表中具体的一条记录相对应

    4:一个类可以对应多个表,一个表也可以对应对个类

    5:DB中的表可以没有主键,但是Object中必须设置主键字段

    6:DB中表与表之间的关系(如:外键)映射成为Object之间的关系 

    7:Object中属性的个数和名称可以和表中定义的字段个数和名称不一样

    所以说Hibernate是一种自动化的OR映射的框架;它是对JDBC的二次封装,省去了好多映射的工作;

  

      

    同样的ORM框架还有APACHE的-OBJ,TOPLINK等。我们这里只介绍Hibernate,不过JAVA5.0已经开始引入了JPA技 术,以后由JAVA直接JPA操作数据库,再由JPA操作Hibernate或者OBJ,TOPLINK,这样无论用什么技术都是由JPA操作,我们来调 用JPA,这样就不需要学习更多的框架。

   

 

 

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:101833次
    • 积分:4380
    • 等级:
    • 排名:第7127名
    • 原创:119篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1608条
    最新评论