Hibernate基础知识

来源:互联网 发布:ci框架打印sql语句 编辑:程序博客网 时间:2024/06/05 10:08

一、Hibernate简介

        Hibernate是一个开放源代码的ORM(Object Relation Mapping,对象关系映射)框架,它对JDBC进行了轻量级的对象封装。它是处于持久层的。

二、为什么使用Hibernate

        所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把Java应用程序中的对象,持久化到关系型数据库的表中。通过操作Java对象,就可以完成对数据库表的操作。可以吧ORM理解为关系型数据和对象的一个纽带,开发人员只需要关注纽带一端映射的对象即可。

三、Hibernate的执行流程

        在Hibernate开发过程中通常会用到5个核心接口,分别为Configuration接口、SessionFactory接口、Session接口、Transaction接口和Query接口。Hibernate持久化操作的主要步骤具体如下:

        (1)初始化Hibernate,构建Configuration实例,这一步用来读取Hibernate核心配置文件和映射文件信息到Configuration对象中。

         (2)创建SessionFactory实例。通过Configuration对象读取到的配置文件信息并创建SessionFactory,并将Configuration对象中的所有配置文件信息存入SessionFactory内存中。


            (3)创建Session实例,建立数据库链接。Session是通过SessionFactory打开的,创建一个Session对象就相当于建立了一个新的数据库链接。

            (4)创建Transaction实例,开启一个事务。Transaction用于事务管理,一个Transction对象对应的事务可以包含多个操作。在使用Hibernate进行增删改操作的时候,必须先创建Transaction对象。

             (5)利用Session接口通过的各种发发进行持久化操作。

             (6) 提交事务。对实体对象持久化操作后,必须提交事务。

             (7)关闭Session,断开与数据库的连接。

            Hibernate的事务默认是不开启的,如果执行增删改操作,需要手动开启事务来控制,如果只做查询操作,可以不开启事务。

四、Hibernate的核心文件

       1、 Hibernate的映射文件*.hbm.xml详解

          

           从以上的代码中我们可以学习到几个标签及他们的含义

           <hibernate-mapping>:定义XML配置文件的基本属性。它所定义的属性在映射文件的所有节点都有效。

           <class:钙元素用来声明一个持久化类,它是XML配置文件中的主要配置内容。通过它可以定义Java持久化类与数据库表之间的关系。

           <id>:持久化类的标识属性在Hibernate的映射文件中使用<id>元素来描述。该属性用来设定持久化类的OID和表的主键映射。

           <property>:在映射文件中,通常使用property元素的name、column和type三个属性将持久化类中的普通属性映射到数据库表的对应字段上。

           <class>

      2、 Hibernate的配置文件hibernate.cfg.xml详解

            Hibernate的配置文件包含了连接持久层与映射文件所需的基本信息,其配置文件有两种格式,具体如下:

               ●一种是properties属性文件格式的配置文件,它使用键值对的形式存放信息,默认文件名称我hibernate.properties。

               ●另一种是XML格式的配置文件,XML配置文件的默认名称为hibernate.cfg.xml。它通常放在WEB-INF/class路径下。


 五、hibernate核心的API

           它又6个长用的接口,分别是Configuration,SessionFactory,Session,Transaction,Query,Criteria。下面将对这6个核心接口进项详解。

            1、Congfiguration:Configuration实例主要用于启动、加载、管理hibernate的配置文件信息。

            2、SessionFactory:负责HIbernate的初始化和建立Session对象。它在Hibernate中起到一个缓冲区的作用,Hibernate可以将自动生成的SQL语句、映射数据库以及某些可重复利用的数据放在这个缓冲区中。同时它还保存了对数据库配置的所有映射关系,维护了当前的二级缓存。SessionFactory具有以下特点:①线程安全②重量级

             3、Session:应用程序与数据库之间交互操作的一个单线程对象,是Hibernate运作中心。它的主要作用是为持久化对象提供创建、读取和删除等功能,所有持久化对象必须在Session的管理下才可以进行持久化操作。获取session有两种方式一种是opensesion()方法,另一种是通过getCurrentSession()方法(它会被绑定到当前线程中,它在提交或回滚操作时会自动关闭)。

              session是线程不安全的。

              4、Transaction:主要用于管理事务。它是Hibernate的数据库事务接口,且对底层的事务接口进行了封装。Transaction接口的事务对象是通过Session对象开启的,其开启方式如下:

Transaction transaction=session.beginTransaction();

               5、Query:代表面向对象的一个Hibernate查询操作。

               6、Criteria:是一个完全面向对象、可扩展的条件查询API,通过它完全不需要考虑数据库底层如何实现,以及SQL语句如何编写,它是Hibernate框架的核心查询对象。


总结:

           详细介绍了hibernate的API以及核心文件。通过本篇博客您是否了解了Hibernate的基础知识呢?希望本篇博客对您来说有一定的帮助~感谢您的阅读。如有不妥之处欢迎斧正~

         

             

原创粉丝点击