【Hibernate】初识了解

来源:互联网 发布:华为笔试java 编辑:程序博客网 时间:2024/06/11 14:36

一.Hibernate 简介
  Hibernate是一个开放源码的对象映射框架,它对JDBC进行了非常轻量级的对象封装,他将POJO(
简单的Java对象,实际就是普通JavaBeans)和数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行。所以就使得程序员可以使用对象编程的思维来操纵数据库。



补充)什么是持久化:

     视频中老师一直说持久化,这里理解下。
     持久化(Persistence)即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中。持久化的主要原因,就是内存中的数据会丢失,所以我们需要将它保存在存储设备中。说直白点,就是把数据存储在硬盘不会丢失的地方。
     持久化是站在业务模型的角度来说的,按照面向对象的分析设计方式,设计对象模型、写代码,对象之间调用,系统运行起来了。但是有一个问题,所以的对象都是在计算机的内存中的,一旦机器关掉,一切都消失了。于是需要有这样的功能,把内存中的对象保存到数据中,需要的时候再从数据库中拿出来。
     简单方式是写sql语句,inset 然后Update.然后按照面向对象的思维来解决这个问题,就需要定义一个表,在这个表中记录对象属性和数据库字段的一个对应关系,当我们需要一个对象的时候,就根据这个表自动把对象属性的值赋上,修改后的属性还能够自动update到数据库中。有了这个功能,对象的使用者就好像没有数据库一样,好像这些对象本来就是放在内存中的,这就是orm.


二,核心组件
   Configuration类:用来读取Hibernate配置文件,并且生成sessionFactory对象
    SessionFactory类:产生Session实例工厂
   Session接口:用来操作PO(persistant Ojbect)持久化对象,他有get(),load(),Save()和delete()等方法来对Po进行加载,保存,更新和删除等操纵。它是Hibernate的核心接口。
    Query接口:用来对PO进行查询,它可以从Session的CreateQuery()方法生成。
    TranSaction接口:用来管理了Hibernate事务,它主要方法有Commit()和rollback(),可以从Session的beginTrancatioin()方法生成。


三,优点:
   ①提高生产力
   ②是开发更加对象化(阻抗不匹配)

    不需要编写sql语句,只需要操作相应的对象就可以了,就能够实现存储、更新、删除、加载对象,可以提高生产效率。
   ③可移植性。

   只要使用Hibernate标准开发,更换数据库时候,,只是需要配置相应的配置文件就可以了,不需要做其他任务的操作。
   ④没有侵入性,支持透明持久化。

    当保存一个对象时候,不需要继承HIbernate中的任何类、实现任何接口,只是一个纯粹的单纯对象。是一个轻量级的框架。

四,缺点:
      ①使用数据库特性的语句,很难调优。

      因为它对JDBC封装过于厉害,所以就失去了对SQL的控制。使得Hibernate很多地方不够灵活, 难于优化, 但是对于一些复杂的关联查询时,Hibernate提供的功能远不如JDBC方便性更好。

    ②对大量数据更新存在问题。

    不适用于批量操作。Hibernate没有提供专门的批处理机制,如果要批量更新或者插入数据时,还需要显示的Flush,clear的操作。性能不如JDBC.
   ③消耗内存

     相对于JDBC,Hibernate更消耗内存,因为它每次的数据库操作都要做数据和对象的封装、转化,查询,查询一条数据就要创建一个或者多个对象,这样消耗内存。

五,总结

                  


0 0
原创粉丝点击