zoukankan      html  css  js  c++  java
  • hibernate学习系列-----(2)hibernate核心接口和工作机制

    在上一篇文章hibernate学习系列-----(1)开发环境搭建中,大致总结了hibernate的开发环境的搭建步骤,今天,我们继续了解有关hibernate的知识,先说说这篇文章的主要内容吧:

    1. Configuration类
    2. SessionFactory接口
    3. Session接口
    4. Transaction接口
    5. Query和Criteria接口

    下面就进行分类别地详细说明:

    Configuration类

    1. 功能描述:Configuration类负责管理Hibernate的配置信息作并根据配置信息启动Hibernate。
    2. 详细说明:提供数据库的链接参数;数据库连接池以及对象关系文件的配置,通过Configuration类来加载配置信息并且启动hibernate的应用程序
    3. hibernate的配置方法:(1):使用hibernate.properties文件进行配置;(2)使用xml文件进行配置,也就是“hibernate.cfg.xml”文件,推荐使用后者

    SessionFactory接口

    • SessionFactory实例对应一个数据存储源,我们的应用程序就是通过SessionFactory实例来获取我们的Session对象,SessionFactory的特点有:
      • (1)线程安全,一个SessionFactory实例可以被应用的多个线程共享
      • (2)重量级:需要很大的缓存来存储预定义的SQL语句以及映射数据,so,如果我们的应用程序只使用一个数据库,则只需建立一个SessionFactory对象即可

    Session接口

    • Session又被称之为持久化管理器,它提供了和持久化相关的CRUD操作,在hibernate中应用最为广泛。Session接口有哪些特点呢?
      • (1)线程不安全:它代表了我们对数据库的一次操作,因此在开发中应尽量避免多个线程共享同一个Session实例;
      • (2)轻量级:它的销毁和创建不需要消耗太多资源;
      • (3)hibernate的一级缓存:存放了当前工作单元加载的一些对象,每一个Session都有自己的缓存,缓存中的对象只能被当前的工作单元所使用;
      • (4)SessionFactory对象打开:使用完毕后要及时关闭。

    Transaction接口

    • Transaction接口是hibernate中的事务接口,它包括:JDBC API、JTA,hibernate在进行持久化操作时(CRUD),必须在事务中加以控制。

    Query和Criteria接口

    • Query和Criteria接口是hibernate中的查询接口:
      • (1)Query接口包装了一个HQL(Hibernate Query Language)查询语句。
      • (2)Criteria接口比较面向对象,擅长执行动态查询。

    hibernate的核心接口就大致说到这儿了,下面说一下hibernate的工作机制,先上图:

    图片1

    这张图还是比较好理解的,我就不再说明。

  • 相关阅读:
    可视化工具连接mysql报1862【mysql修改登录密码】
    Java面试常被问到的题目+解答
    MyBatis启动:MapperStatement创建
    JavaScript Array(数组)对象
    分布式与集群的区别是什么?
    【触发器】MySQL触发器使用详解
    c++冒泡排序的模板函数设计
    c/c++性能优化--- cache优化的一点杂谈
    BZOJ 3181([Coci2012]BROJ-最小质因子为p的第k小素数)
    POJ 1026 Cipher
  • 原文地址:https://www.cnblogs.com/doctorJoe/p/4698976.html
Copyright © 2011-2022 走看看