使用Hibernate框架轻松连接数据库(蓝桥杯软件大赛培训教材-Java方向)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 持久化及ORM概念

无论是JDBC还是Hibernate,都属于“持久化”这个概念的范畴,只不过Hibernate是一种更高级和更有效的解决方案。在这一节中,将要了解持久化及持久化层的概念,以及持久化解决方案中的ORM,接着了解Hibernate与它们之间的关系。

1.1.1 持久化的概念

几乎所有应用程序都需要操作持久化数据。持久化是应用程序开发的一个基础概念——是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型,存储模型可以是关系型数据库表、XML文件、二进制文件等。

Java的持久化,通常是指使用SQL将数据存储在关系型数据库中。

1.1.2 持久化层

在大中型应用中,都会按Java class的作用来进行划分,这就有了层的概念,如表现层、业务逻辑层、持久化层。将与持久化相关的类或组件打包在一起,就是多层系统中的持久化层(Persistence Layers)。

如图1.1所示,持久化层是专门与数据库打交道的层,作为基础它被业务层调用。

图1.1 持久化层是分层体系结构的基础

1.1.3 ORM的概念

对象持久化或持久化层的实现有若干方案,例如通过JDBC调用SQL语句存取数据的方式,还有序列化对象的方式等。就技术发展的现状而言,ORM是最好的方式。

ORM是持久化的一种解决方案,主要是把对象模型和关系型数据库关系模型映射起来,并且使用元数据对这些映射进行描述。如图1.2所示,实体类的定义可以和数据表的定义映射起来,类的属性可以和数据表的字段映射起来。内存中的一个实体对象代表一行已经存在的数据或即将插入的数据。这样映射起来之后,通过某种自动化的SQL生成机制便可达到“操作对象就是操作数据库”的目标。

图1.2 ORM示意图

具体来说,ORM解决方案提供以下四个主要功能。

● 基本增删改查的API

例如session.save(aSeeker),等效于执行一条insert语句。

● 对象或属性查询的API

例如session.createQuery("from Seeker").list()可以查询出对应ijob_seeker表所有行的所有Seeker对象。

● 规范映射元数据

ORM解决方案需要规范映射的方式,通常选择XML存储映射元数据,因为XML便于读取和规范格式。

● 事务控制、延迟加载等优化功能

点评

对象持久化是一个基本概念,ORM是这个概念的一种解决方案,而Hibernate是ORM的一个实现,是一个完整的ORM工具,提供了上述的所有ORM功能。