Hibernate对ORM进行了实现,
是一个开放源代码的对象关系映射框架。在软件的分层结构中,Hibernate在原有三层结构(MVC)的基础上,从业务逻辑层中分离出持久层,专门负责数据的持久化操作,使业务逻辑层可以真正的专注于业务逻辑的开发,不再需要编写复杂的SQL语句。
在传统的软件设计结构中,并没有太多的分层理念,程序的代码非常集中,给程序的调试及后期维护带来一定的困难。从业务逻辑层中分离出持久层大大提高了程序的可扩展性及可维护性,程序之间的各种业务并非紧密耦合,使得程序更加健壮、更易于维护。
它的常用接口主要有:Configuration接口、SessionFactory接口、Session接口、Transaction接口、Query接口和Criteria接口。这6个核心接口在Hibernate框架中发挥着重大的作用,使用这6个接口不仅可以获取数据连接、对数据进行持久化操作、HQL查询等,而且还可以对事物进行控制,其功能如下所示:
Configuration接口
Configuration接口用于加载Hibernate的配置文件及启动Hibernate,创建SessionFactory实例。在Hibernate的启动过程中,Configuration对象首先加载Hibernate的配置文件对其进行读取,然后根据配置创建SessionFactory对象。
SessionFactory接口
SessionFactroy接口用于对Hibernate进行初始化操作,它是一个Session工厂,Session对象从此接口获取。通常一个项目只有一个SessionFactroy对象,因为它对应一个数据库,如果项目中存在多个数据库,可以存在多个SessionFactory对象。但要注意SessionFactroy是一个重量级对象,它的创建比较耗时、占用资源,它是线程安全的。
Session接口
Session接口是操作数据库的核心对象,它负责管理所有与持久化相关的操作,也称为CRUD操作。使用此对象时应该注意,Session对象与SessionFactory对象不同,它是非线程安全的,应避免多个线程共享同一个Session,它的创建不会消耗太多的资源。
Transaction接口
Transaction接口用于对事物的相关操作,如事物的提交、回滚等操作。
Query接口
Query接口主要用于对数据库的查询操作,功能十分强大,它的单检索、分页查询等诸多方法为程序开发提供了方便。其中面向对象查询语言HQL通过此接口进行实现。
Criteria接口
Criteria接口同样用于对数据的查询操作,它为Hibernate的另一种查询方式QBC提供了方法。
以上所述接口是Hibernate中的常用的关键接口,它们的作用不仅仅局限于上述功能,它们的实现类及部分子接口同样发挥着强大的作用,为Hibernate 使用提供更加灵活的方法。
本文摘自:编程词典