Hibernate之初体验一

时间:2021-11-28 23:38:29

    要想深入到J2EE的开发中去,Struts、Spring、Hibernate都是一些必须熟悉知晓的框架。今天就先来了解Hibernate初步。

 

    Hibernate,网上和诸多教程中经常会有这样一句话:“Hibernate是目前最流行的ORM(对象关系映射)框架之一。”那么什么是ORM?

 

    对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象关系数据库存在的互不匹配的现象的技术。

 

    ORM是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。

 

    对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,ORM系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

 

    我们先来理解一下ORM的问题,在面向对象初学时,我们往往会有这样一个例子,定义一个学生类,包含学生编号、姓名、性别、年龄、联系方式的基本信息。我们会这样写:

 

    接下来,我们的应用程序要保存某一个学生的基本信息东阿数据库中,那么会在我们的数据库中建立一个和此类中包含数据相对应的表,将学生的各成员变量的信息存储到关系数据库的字段中。可能会写很多数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在Data Access Layer(后简称DAL)中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。

 

    如果打开你最近的程序,看看DAL代码,你肯定会看到很多近似的通用的模式。我们以保存对象的方法为例,你传入一个对象,为SqlCommand对象添加SqlParameter,把所有属性和对象对应,设置SqlCommand的CommandText属性为存储过程,然后运行SqlCommand。对于每个对象都要重复的写这些代码。

 

    除此之外,还可以引入一个ORM。实质上,一个ORM会为你生成DAL。与其自己写DAL代码,不如用ORM。你用ORM保存,删除,读取对象,ORM负责生成SQL,你只需要关心对象就好。

 

    到此,我们也可以知道作为ORM框架的Hibernate的真实用途是什么了。我转录别人对Hibernate的特点:

        1,ORM(对象关系映射)功能的框架实现,能用对象的概念来处理关系数据库。
        2,功能强大,高效。提供了对象关系映射,对象查询语言HQL,和一套Criteria API等功能。
        3,有丰富的成功案例和文档资料。