Hibernate学习札记(1)

1·Hibernate在初始化阶段就会更加映射信息预定义一些SQL,insert,delete,update语句,这些SQL语句存放在SessionFactory的缓存中,当要执行session中的相关语句时,只需要直接调用这些方法即可。
2·Hibernate的核心接口:
    1.Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象
    2.SessionFactory接口:一个SessionFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。SessionFactory有一下特点:
        。它是线程安全的,这意味着他的一个实例可以被多个线程共享
        。她是重量级的,这就意味着他不能随意的创建或者销毁。如果应用只访问一个数据库,只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例。如果应用同时访问多个数据时,则需要为每一个数据库创建一个单独的SessionFactory实例
             之所以称SessionFactory是重量级的,是因为他需要一个很大的缓存用来存放预定义的SQL语句以及映射元数据等。用户还可以为SessionFactory配置一个缓存插件,这个缓存插件被称为Hibernate的二级缓存,该缓存用来存放被工作单元读过的数据。将来其他的工作单元可能会重用这些数据,因此这个缓存中的数据能够被所有工作单元共享。一个工作单元通常对应一个数据库事务。
    3·Session接口,Session接口是Hibernate引用使用最为广泛的接口Session也被称为持久化管理器。他提供了和持久化相关的操作。如保存,更新,删除,加载和查询对象。
    (Hibernate中的Session与Java Web中的HttpSession没有任何关系)
    Session有以下特点:
    。不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session
    。Session实例是轻量级的,所谓轻量级,是指他的创建和销毁不需要消耗太多的资源。这就意味着在程序中可以经常创建或者销毁Session对象。
    。Session有一个缓存,被称为Hibernate的第一级缓存他存放被当前工作单元加载的对象。每个Session实例都有自己的缓存,这个Session实例的缓存只能被当前的工作单元访问。
    4·Transaction接口:这是Hibernate的数据库事务接口,他对底层的事物接口做了封装。
    。JDBC API
    。JTA(JAVA TRANSACTION API)
    。CORBA(COMMON OBJECT REQUEST BROKER ARCHITECTURE)
    5·Query/Criteria接口封装了对数据库查询的相关对象。

你可能感兴趣的:(Hibernate学习札记(1))