Hibernate入门简介

Hibernate顾名思义冬眠的意思,相信它的创造者的用意在于用这个工具将数据库连接持久化层冬眠,关于Hibernate网上争论很多,有人说其为工具,有人说其为框架,我相信一个人有一个人理解问题的角度,只要处理问题的方法正确就可以了。Hibernate是采用ORM映射机制的持久层开发工具,它是JAVA应用和关系数据库之前的桥梁,负责JAVA对象和关系数据之间的映射。内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API,在JAVA应用中使用到Hibernate包含如下步骤。

 

1) 创建 Hibernate配置文件

 

2) 创建持久类

 

3) 创建对象-关系-映射文件

 

4) 通过 HibernateAPI编写访问数据库的代码

 

如果想了解 Hibernate或者是要学习它的人必须要首先了解两个比较重要的概念:

 

1) POJO:在Hibernate中理解为数据库表所对应的Domain Object,如果从子面上理解就是无格式普通JAVA对象,简单的理解就是一个不包含逻辑代码的值对象。从数据层面上看,POJO作为数据实体的对象化表现形式,也成为实体。

 

2) ORM:ORM可以理解成一种机制也可以理解成一种模式,对象-关系-映射,我个人觉得如果想理解它可以和MVC比较,模型-视图-控制。ORM是把对象和关系数据库映射到一起,而MVC是把视图和模型控制在一起。

 

创建 Hibernate的配置文件Hibernate从中读取和数据库连接的相关信息,这个配置文

 

件应该位于应用的 classpath中,主要有两种形式XML格式和.Properteis信息文件。

 

创建持久化类就是指需要被 Hibernate持久化到数据库中的类,持久化类通常都是模型中的实体类,符合JavaBean的规范,包含一些属性,以及与之对应的get、set方法。
Hibernate技术本质上是一个提供数据库服务的中间件。它的架构如下图所示:
此图显示了hibernate的工作原理,它是利用数据库以及其他一些配置文件如hibernate.properties,XML Mapping等来为应用程序提供数据持久服务的。
 在项目中使用Hibernate框架,非常关键的一点就是要了解Hibernate的核心接口。Hibernate接口位于业务层和持久化层,如图1所示。

  

  图1 Hibernate核心接口的层次架构关系

  Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。

  ·Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程 安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。

  ·SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

  ·Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

  ·Transaction接口:Transaction接口负责事务相关的操作。它是可选的,可发人员也可以 设计编写自己的底层事务处理代码。

  ·Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值