Hibernate基本知识(二)--Hibernate核心接口

1、 Hibernate核心接口

Session、Transaction、Query、SessionFactory、Configuration

Hibernate基本知识(二)--Hibernate核心接口

2、 Session概述:

l Session不是线程安全的,它代表与数据库之间的一次操作,它的概念介于Connection和Transaction之间。

l Session也称为持久化管理器,因为它是与持久化有关的操作接口。

l Session通过SessionFactory打开,在所有的工作完成后,需要关闭。

l 它与Web层的HttpSession没有任何关系。

Hibernate基本知识(二)--Hibernate核心接口

3、 SessionFactory

Ø 应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。通常情况下,整个应用只有唯一的一个会话工厂——例如在应用初始化时被创建。然而,如果你使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。

会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。

Ø 调用代码:

SessionFactory sessionFactory = cfg.buildSessionFactory();

Ø 说明:SessionFactoryConfiguration对象创建,所以每个Hibernate配置文件,实际上是对SessionFactory的配置

4、 Transaction(事务)

它将应用代码从底层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA——允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。

Ø 调用代码:

Transaction tx = session.beginTransaction();

v 注:使用Hibernate进行操作时必须显式的调用Transaction(默认:autoCommit=false)。

5、 Query

Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写。

Ø 调用代码:

Query query = session.createQuery(“from User”);