Hibernate是轻量级的Java EE应用的持久层的解决方案,Hibernate不仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和数据获取的方法,可以大幅度缩短使用JDBC处理数据持久化的时间。
ORM和Hibernate
在介绍Hibernate之前咱们得先了解了解ORM
对象/关系数据库映射(ORM)
当我们使用一种面向对象的程序设计语言来开发项目的时候,从开始就开始使用面向对象分析、面向对象设计、面向对象编程。但是到了持久层数据库访问的时候,就有必须重返关系型数据库的访问方式,真是一种非常糟糕的赶脚~~
于是我们就需要一种工具,来把关系型数据库包装成面向对象的模型,这个工具就是ORM框架。
ORM全称Object/Relation Mapping,对象/关系数据库映射。可以被理解成一种规范,这类框架的基本特征:
完成面向对象的编程语言到关系数据库的映射。
下图显示了ORM工具作用的示意图。
当我们采用ORM框架之后,应用程序不再直接访问数据库,而是以面向对象的方式来操作持久化对象,而ORM框架则将这些面向对象的操作转化成底层的SQL操作。
基本的映射方式
ORM提供了持久化类和数据表之间的映射关系,通过这种映射关系的过渡,我们很方便的对数据库进行相关的操作,ORM的映射关系大致有如下几条:
1. 数据表映射类
持久化类被映射到一个数据表,当应用程序对持久化类进行相应的操作时,系统会自动的把这些操作转换成对这张表的CRUD操作。
2. 数据表的行映射对象(即实例)
持久化类会生成很多实例,每个实例就对应数据库中的一行记录,当我们在应用中修改某个实例的时候,ORM工具就会自动转化成对特定行的操作。
3. 数据表的列(字段)映射对象的属性
当我们在应用中修改某个持久化对象的制定属性时,ORM将会转换成对对应数据表中指定数据行、指定列的操作。
ORM框架中,持久化对象是一种中间媒介,应用程序只需要操作持久化对象,ORM框架则负责将这种操作转化为底层数据库操作----这种转换对开发者透明,无需开发者关心。从而将开发者从关系模型中释放出来,以面向对象的思维来操作关系型数据库。