一、hibernate是什么?

1.hibernate是一个框架(framework)

2.hibernate是一个orm框架,Orm(object relation mapping)对象关系映射 框架

3.Hibernate处于项目的持久层位置(所以称hibernate为持久层框架)

4.Hibernate实际上就是对jdbc进行了轻量级的封装

 

总结:hibernate是对jdbc进行了轻量级的封装的orm框架,充当项目的持久层

ORM(Object Relation Mapping)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另一种形式。

使用ORM技术可以在java程序中以类和对象的方式去操控数据库表和记录。除了orm框架,apache ojb/toplink/ibatis/ejb cmp,都是持久化框架。

 

二、为什么需要hibernate?

1.如果没有hibernate,使用jdbc操作数据库比较麻烦,而且一旦要切换数据库就得重新编写sql,而我们程序员希望只关注业务逻辑本身,而不希望关注数据库部分。

2.使用hibernate的好处,

①引入hibernate可以使工作人员角色细化,让程序员只关心业务流程,让数据库人员负责数据库的各种操作。

②分层更清晰,耦合性更小。

③通用性强:可以更轻松地从一个数据库平台转移到别的平台。

④对象化:把关系数据库变成了java对象,更加方便操作。

⑤性能保证:hibernate可能按不同地数据库,处理不同的操作是用最优化的SQL语句,不用我们去想,对于分等算法,在hibernate中会显得更简单,可靠。

⑥增加了程序的鲁棒性。

 

3.传统操作数据库与使用hibernate操作数据库

hibernate框架 架构图 hibernate框架的意义_hibernate框架 架构图

三、hibernate开发的三种方式

1.由domain object->mapping->db;(官方推荐)

2.由DB开始,用工具生成mapping和Domain object。(使用较多)

3.由映射文件开始

 

四、hibernate基础知识

1.POJO介绍,在使用hibernate时,要求和数据库的某张表相互映射的那个java类,是一个POJO类,一般放在com.xx.domain包下,POJO翻译过来就是简单的java对象(Plain Ordinary Java Objects)实际上就是普通的JavaBeans,使用POJO名称是为了避免与EJB混淆,一个POJO类应当具有:①有一个主键属性,用于唯一标识该对象(这就是为什么hibernate设计者建议要映射的表需要一个主键),②有其他属性,③有对各个属性的set和get方法,④属性一般是private修饰,⑤一定有一个无参构造函数(用于hibernate框架反射用)

2.xxx.hbm.xml,该文件是对象关系映射文件,作用是用于指定domain对象和表的映射关系,一般放在和domain对象同一包下。

3.Hibernate.cfg.xml,这个是hibernate的核心配置文件,同时管理所有的对象关系映射文件。

4.hibernate开发包下载(www.hibernate.org),里面包含了许多jar包,以下是必须引入到项目里的几个jar包,建议把开发包里所有的jar包都导入防止ClassNotFound:

antlr-2.7.6.jar

commons-collections-2.1.1.jar

dom4j-1.6.1.jar

hibernate3.jar(核心jar包)

Javassist.jar

jta.jar