3.Hibernate的体系结构
关于SessionFactory:
HHibernate的关键对象,它是单个数据库映射关系经过编译之后的内存镜像,是线程安全的。它是生产Session的工厂 。实际应用中,SessionFactory底层封装了DataSource。
关于Session:
Session是应用程序与持久化对象之间交互操作的一个单线程对象,是Hibernate持久化操作的关键对象,所有的持久化对象必须在Session的管理下才能进行持久化操作。即只有处于Session管理下的POJO才有持久化操作的能力。它底层封装了JDBC,他也是Transaction的工厂。Session对象持有一个必选的一级缓存,显示执行flush之前,所有持久化操作的数据都存放在Session对象缓存中。
关于持久化对象:
系统创建的POJO实例,一旦与特定的Session关联,并对应数据库表的指定记录,该对象就处于持久化状态,这一系列对象都被称为持久化对象。在程序中对持久化对象的修改,都将自动转化为对持久层的修改。持久化对象可以是普通的POJO/JavaBean,唯一特殊的是它们正在与一个Session关联。
关于事务Transaction:
代表一次原子操作,它具有数据库事务的概念。一个Session下可能有多个Transaction对象。虽然事务管理是可选的,但所有的持久化操作都应该在事务管理下进行,哪怕是只读操作。
关于连接提供者ConnectionProvider:
它是生成JDBC连接的工厂。
关于事务工厂TransactionFactory:
它是生产Transaction对象实例的工厂。
关于SessionFactory:
HHibernate的关键对象,它是单个数据库映射关系经过编译之后的内存镜像,是线程安全的。它是生产Session的工厂 。实际应用中,SessionFactory底层封装了DataSource。
关于Session:
Session是应用程序与持久化对象之间交互操作的一个单线程对象,是Hibernate持久化操作的关键对象,所有的持久化对象必须在Session的管理下才能进行持久化操作。即只有处于Session管理下的POJO才有持久化操作的能力。它底层封装了JDBC,他也是Transaction的工厂。Session对象持有一个必选的一级缓存,显示执行flush之前,所有持久化操作的数据都存放在Session对象缓存中。
关于持久化对象:
系统创建的POJO实例,一旦与特定的Session关联,并对应数据库表的指定记录,该对象就处于持久化状态,这一系列对象都被称为持久化对象。在程序中对持久化对象的修改,都将自动转化为对持久层的修改。持久化对象可以是普通的POJO/JavaBean,唯一特殊的是它们正在与一个Session关联。
关于事务Transaction:
代表一次原子操作,它具有数据库事务的概念。一个Session下可能有多个Transaction对象。虽然事务管理是可选的,但所有的持久化操作都应该在事务管理下进行,哪怕是只读操作。
关于连接提供者ConnectionProvider:
它是生成JDBC连接的工厂。
关于事务工厂TransactionFactory:
它是生产Transaction对象实例的工厂。