Hibernate概念及体系结构
Hibernate概念及体系结构
Hibernate概念
Hibernate 是一个开放源代码的 O/R Mapping 持久化框架(中间件),它对JDBC进行了轻量级的封装,使Java程序员可以随心所欲地使用面向对象编程思维来操纵数据库。
Hibernate内部封装了JDBC、JTA(Java Transaction API)和JNDI,JDBC提供底层的数据访问操作,只要用户提供了相应的JDBC驱动程序,Hibernate可以访问任何一个数据库系统。JNDI和JTA使得Hibernate能够和JavaEE应用服务器集成。
所谓轻量级封装,是指Hibernate并没有完全封装JDBC,Java应用既可以通过Hibernate API访问数据库,还可以绕过Hibernate API直接通过JDBC API来访问数据库。
采用配置方式的编程风格。
Hibernate框架下载:http://hibernate.org/
Hibernate体系结构
其中hibernate.properties和XML Mapping都是配置文件,配置对象模型(Persistent Objects)和 关系模型(Database)的映射关系。
Hibernate核心API
Configuration类
配置Hibernate,根启动Hibernate。Hibernate应用通过Configuration实例来指定对象-关系映射文件的位置或者动态配置Hibernate的属性,然后创建SesssionFaction的实例对象。
SessionFactory接口
初始化Hibernate,充当数据存储源的代理,创建Session对象,一个SessionFactory对应一个数据存储源(DB)。
Session接口
负责保存、更新、删除、加载和查询对象,它是Hibernate应用使用最广泛的接口,也被称为持久化管理器。
Transaction接口
管理事务,是Hibernate的数据库事务接口,它对底层的事务接口做了封装,底层事务接口包括:JDBC、JTA和CORBA事务的API。
Query和Cirteria接口
执行数据库查询,这两个接口是Hibernate查询接口,用于向数据库查询对象,以及控制执行查询的过程。
Query包装了一个HQL(Hibernate Query Language)查询语句,HQL查询语句和SQL语句是相似的,但是HQL查询语句是面向对象的,它引用类名及类的属性名,而不是表名及表的字段名。
Cirteria接口完全封装了基于字符串形式的查询语句,比Query接口更加面向对象,Cirteria更擅长于执行动态查询。