根据网上的相关资料和自己的理解,整理了一下Hibernate的主要接口。
1.Configuration
它位于org.hibernate.cfg.Configuration,好像是,呵呵。Configuration对象负责Hibernate的配置与启动,可以通过它来创建SessionFactory。
获得Configuration实例对象的方法:
(1)Configuration cfg = new Configuration().configure(),如果没有.configure()默认获得的是hibernate.properties,
(2)Configuration cfg = factory.getConfiguration()通过SessionFactory来获得创建它的Configuration。
2.SessionFactory
获得SessionFactory的方法。 factory = cfg.buildSessionFactory()
它的特点是:
(1)SessionFactory是线程安全的,可以被多个应用程序所共享使用。
(2)SessionFactory是重量级的,不要轻易地创建和销毁它的实例,因为会消耗大量的内存资源。
SessionFactory一旦被生成,它的配置信息就不会改变,即使生成它的Configuration发生改变他也不会变化。
3.Session
它是由SessionFactory来创建的,session = factory.openSession()
它的特点是:
(1)Sesion不是线程安全的,所以在软件构架的时候应该尽量避免多一个程序共享一个Session
(2)Session是轻量级的,创建和销毁不需要耗掉很多的资源。
Session创建查询对象、开启事务的方法:
session.createQuery(),session.beginTransaction()
Session是一个持久化对象管理器,它的管理方法有:
isOpen(),flush(),close(),evict(),clear()
获得持久化对象的方法:
get(),load(),两者的区别是当数据库中不存在对应数据室 ,get方法会得到一个null对象,而load会抛出一个异常。
对持久化对象的处理方法:
Session.save(),update,delete()
Session缓存的三大作用:
(1)可以减少访问数据库的次数
(2)可以保证缓存中的数据与数据库中的数据同步
(3)当缓存中的持久化对象存在循环关系时,Session会保证不出现访问对象的死循环,以及由死循环引起的JVM堆栈溢出异
Hibernate应用中Java对象的状态
对于需要持久化的Java对象,在它的生命周期中,可处于以下三种状态:
1 临时状态(transient):刚刚被new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象被称为临时对象。
2 持久化状态(persistent):已被持久化,加入到Session的缓存中。处于持久化状态的Java对象称为持久化对象。
3 游离状态(detached):已被持久化,但不再处于Session的缓存中。处于游离状态的Java对象被称为游离对象。
四、Query和Criteria接口
Query和Criteria接口是Hibernate的查询接口,用于向数据库查询对象,以有控制执行查询的过程。
Query实例包装了一个HQL(Hibernate Query Language)查询语句,HQL和SQL查询语句有些相似,便HQL查询语句是面向对象的,它引用类名及类的属性名,而不是表名及表的字段名。
Criteria接口完全封装了基于字符串形式的查询语句,比Query接口更加面向对象。Criteria接口擅长于执行动态查询。
复杂查询用QBC检索方式。QBC检索方式主要由Criteria接口、Criterion接口和Expression、Restrictions类组成。
五、Transaction接口
Transaction接口是Hibernate的数据库事务接口,它对底层的事务接口做了封装,底层事务接口包括:
JDBC API
JTA (Java Transaction API)
CORBA (Common Object Requet Broker Architecture) API
Hibernate应用可通过一致的Transaction接口来声明事务边界,这有助于在不同的环境或容器中移植。
分享到:
相关推荐
Hibernate的核心接口与类
使用hibernate框架,面向接口进行dao层的设计,是通用的底层架构.
hibernate数据库访问接口设计
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。
封装hibernate统一操作接口 简易API
关于hibernate核心接口的描述,其中能加深对hibernate的理解
Hibernate的五个核心接口 Configuration SessionFactory Session Transcation Query和Criteria
Session是Hibernate中应用最频繁的接口,Session也被称为持久化管理器,它负责所有的持久化工作,负责管理持久化对象的生命周期,提供第一级别的高级缓存来保证持久化对象的数据与数据库同步
Hibernate曾删改查接口实现,拿过来就可以直接用。
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或加入...
Hibernate HQL命名参数和Query接口的分页 Hibernate HQL命名参数和Query接口的分页
Configuration接口 Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 ...
hibernate注入的三种方式
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java...Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。
hibernate3.3.1接口实现包 slf4j-log4j12-1.5.2
很好的介绍了和hibernate有关的接口,也介绍了它们各自的作用。
NULL 博文链接:https://dr-yanglong.iteye.com/blog/2009075
3 list和iterate不同之处(//主要为了面试 详见hibernate_2900_Hibernate_list_iterate) 4 一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache) 5 事务并发处理(面试的意义...
slf4j-1.5.8.rar Hibernate日志接口