Hibernate5 框架技术
课程讲义
北京动力节点教育培训公司
制作人:郭哥
2015 年 10 月
北京动力节点 中国 Java 培训的黄埔军校
Hibernate5 讲义
第 1 章 Hibernate 概述
Hibernate 是一个开放源代码的 ORM(对象关系映射)框架,它对 JDBC 进行了非常轻
量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在
Servlet/JSP 的 Web 应用中使用。
---- 百度百科《Hibernate》
一、什么是 对象持久化
所谓持久化(Persistence),即把数据(如内存中的对象)保存到持久化设备,即可永
久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的数据存储到关系型的数据库中,当然也可以存储在磁
盘文件中、XML 数据文件中等。
二、为什么要持久化
(1)内存不能持久;
(2)内存容量有限(内存是用于存放计算数据的);
(3)业务数据共享的需要(需要公共的持久设备);
(4)为了使用大规模的检索(所以要将数据改为适合大规模检索的格式);
(5)数据管理的需要(安全、备份)
三、怎样实现持久化
1、对象序列化
即实现了 Serializable 接口的类。适合于少量的对象进行暂时的持久化,适合于在网络
上传输对象。但不符合企业级应用的需要。因为企业应用中对数据的要求是大量的、长时
间保存的、需要进行大规模查询。
2
北京动力节点 中国 Java 培训的黄埔军校
2、JDBC
优点:功能完备、从理论上说效率是最高的;可以存储海量的数据并且适合进行大规
模检索;
缺点:开发效率和维护效率低;开发难度大,代码量大,占到到总代码量的 1/3,或 1/2;
3、ORM
ORM,即 Object-Relational Mapping,对象关系映射。它是一种解决问题的思路,是一
种思想。它的实质就是将关系数据库中的业务数据用对象的形式表示出来,并通过面向对
象的方式将这些对象组织起来,以实现系统业务逻辑。或者说,ORM 就是内存中的对象与
数据库中的数据间的映射关系。
ORM 的特点:开源的,实现了 JDBC 的封装, 实现了简单的 API,轻量级解决方案,持
久化对象是一个 POJO 类。最有名的 ORM 框架就是 Hibernate。
4、JPA 框架
JPA,Java Persistence API,是 Java EE 5 的标准 ORM 接口。它是一种规范,一套接口,
但不是实现。用于实现这一规范的 ORM 很多,其中 Hibernate 就是之一。
5、JPA、ORM 与 Hibernate 间的关系
JPA、ORM 与 Hibernate 间的关系是,ORM 是一种思想。JPA 则是这种思想的具体的表
现形式,是以 Java 语法规范表现出来的一种形式,是一套标准接口。Hibernate 则是这套接
口的具体实现。
四、Hibernate 框架
Hibernate 原本是 JBOSS 旗下的产品,2006 年 JBOSS 被 Red Hat 收购,变为了红帽公司
的产品。
3
北京动力节点 中国 Java 培训的黄埔军校
1、Hibernate 框架下载
Hibernate 官网:http://hibernate.org
2、Hibernate 基本 Jar 包
调试 Hibernate 程序所需要的基本 Jar 包,在 Hibernate 框架解压目录的 lib 目录下。
(1)reqired 目录下所有 Jar
(2)optional/c3p0 目录下所有 Jar
(3)optional/ehcache/slf4j-api-1.6.1.jar
(4)jpa-metamodel-generator 目录下所有 Jar
(5)jpa/hibernate-entitymanager-5.0.1.Final.jar
当然,还需要一些其它的辅助 Jar 包。
(1)junit-4.9.jar
(2)slf4j-log4j12-1.7.12.jar 与 log4j-1.2.17.jar
(3)mysql 驱动
4
北京动力节点 中国 Java 培训的黄埔军校
第 2 章 Hibernate 基本技术
一、Hibernate 工作原理
二、第一个 Hibernate 程序
举例:primary
1、定义持久化对象(PO)
5
北京动力节点 中国 Java 培训的黄埔军校
2、配置映射文件
配置映射文件,即配置两个关系:实体类与数据库中表的映射关系,属性与表中字段
的映射关系。
Hibernate 中主要涉及两个配置文件:主配置文件与映射文件。这两个配置文件的约束
文件在 Hibernate 核心 Jar 文件 hibernate-core-5.0.1.Final.jar 中的 or.hibernate 包中:
主配置文件的约束:
映射文件的约束:
6
北京动力节点 中国 Java 培训的黄埔军校
3、配置主配置文件
主 配 置 文 件 中 的 数 据 库 连 接 相 关 属 性 值 可 在 hibernate 框 架 解 压 目 录 下 的
project/etc/hibernate.properties 文件中找到。
方言与 DB 连接四要素的 key:
数据源的 key:
注意,若不指定第三方数据源,将使用 Hibernate 内置的数据源。该数据源无法自动将
数据库连接 Connection 释放,而数据源作为 SessionFactory 的属性,一直被当前程序占用,
导致 SessionFactory在程序运行结束后无法自动关闭。所以在测试时会出现程序运行结束了,
但 Eclipse 的 Terminate 按钮仍显示为红色运行状态。
7
北京动力节点 中国 Java 培训的黄埔军校
4、创建数据库
使用 MySql 自带的 test 数据库。
8