在正式学习Hibernate之前,小博老师再给大家简单介绍下下Hibernate的体系架构:
Hibernate体系中几个重要的对象以及相关作用如下:
ØSessionFatory:一个工厂,主要作用是生成Session对象。该对象可以提供可选的跨事务二级缓存。
ØSession:它是应用程序与持久储存层之间交互操作、持久化操作的关键对象,所有的持久化对象必须在Session管理下才可以进行持久化操作。此对象的生命周期极短,底层封装了JDBC连接。Session对象持有一个必选的一级缓存,显式执行flush()之前,所有持久化操作的数据都缓存在Session对象处。
Ø持久化对象(PersistentObjects):系统创建的POJO实例,一旦与特定的Session关联,并建立了与数据表记录的对应关系,该对象就处于持久化状态,这些对象都被称为持久化对象。在程序中对持久化对象的修改,都将自动被转换成对持久层的修改。持久化对象完全可以是普通的JavaBean,唯一特殊的是他们正与一个Session关联。
Ø事务工厂(TransactionFactory):生成Transaction对象实例的工厂,该对象无须应用程序直接访问,它负责对底层具体的事务实现进行封装、将底层具体的事务抽象成Hibernate事务。
Ø事务(transaction):具有数据库事务的概念,Hibernate事务是对底层具体的JDBC、JTA、以及CORBA事务的抽象,在某些情况下,一个Transaction之内可能包含多个Session对象。虽然事务操作是可选的,但所有持久化操作都应该在事务管理下进行,即便是只读操作。
Ø连接提供者(ConnctionProvider):生成JDBC连接的工厂,通过抽象方法,将应用程序与底层的DataSource或DriverManager隔离开。