Hibernate基础知识

来源:互联网 发布:万网域名续费退款 编辑:程序博客网 时间:2024/06/09 18:59

面向对象是Java编程语言的特点,但在数据库的编程中,操作对象为关系型数据库,并不能对实体对象直接持久化,Hibernate通过ORM技术解决了这一问题,在实体对象与数据库之间提供了一座桥梁。


1、ORM原理

ORM(Object Relational Mapping)是对象到关系的映射,是一种解决实体对象与关系型数据库相互匹配的技术,其实现思想是:将数据库宏总的数据表映射为对象,对关系型数据以对象的形式进行操作。在软件开发中,对象和关系数据是业务实体的两种表现形式,ORM通过使用描述对象和数据库之间映射的元数据,将对象自动持久化到关系数据库中。实质上,ORM在业务逻辑层与数据库层之间充当桥梁,它对对象(Object)到关系数据(Relational)进行映射(Mapping)。

在Hibernate框架中,主要使用了ORM的思想。Hibernate主要通过持久化类(*.java)、Hibernate映射文件(*.hbm.xml)或annotation方式、以及Hibernate配置文件(*.cfg.xml)与数据库进行交互。其中,持久化类是操作对象,用于描述数据表的结构;映射文件指定持久化类与数据表之间的映射关系;配置文件用于指定Hibernate的属性信息等,如数据库的连接信息等。


2、Hibernate常用的6个接口

(1)Configuration/AnnotationConfiguration接口

Configuration接口用于加载Hibernate配置文件及启动Hibernate,创建SessionFactory实例。在Hibernate的启动过程中,Configuration对象首先加载Hibernate的配置文件对其进行读取,然后根据配置创建SessionFactory对象。

(2)SessionFactory接口

SessionFactory接口用于对Hibernate进行初始化操作。它是一个Session工厂,Session对象从此接口获取。通常一个项目只有一个SessionFactory对象,因为它对应一个数据库;如果项目中存在多个数据库,可以创建多个SessionFactory对象。但要注意SessionFactory是一个重量级对象,其创建比较耗内存,占用资源,其是线程安全的。

(3)Session接口

Session接口是操作数据库的核心对象,它负责管理所有与持久化相关的操作,也称CRUD(增加Create、读取Retrieve、更新Update、删除Delete)操作。使用此对象时应注意,Session对象和SessionFactory对象不同, 它是非线程安全的,应避免多个线程共享一个Session,其创建不会耗费太多的资源。

(4)Transaction接口

Transaction接口用于对事务的相关操作,如数据的提交、回滚等操作。

(5)Query接口

Query接口主要用于对数据库的查询操作,其单检索、分页查询等诸多方法为程序开发提供方便。其中,面向对象查询语言HQL(Hibernate Query Language)通过此接口实现。

(6)Criteria接口

Criteria接口同样用于对数据库的查询操作,它为Hibernate的另一种查询方式QBC提供方法。

0 0
原创粉丝点击