Hibernate是什么?从不同的角度有不同的解释:
- 它是连接Java应用程序和关系数据库的中间件。
- 它对JDBC API 进行了封装,负责Java对象的持久化。
- 在分层的软件架构中它位于持久化层,封装了所有数据访问细节,是业务逻辑层可以专注于实现业务逻辑。
- 它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射。
实现对象持久化的几种模式:
- 业务逻辑和数据访问耦合
- 主动域对象模式
- ORM模式
- JDO模式
- CMP模式
提示: 数据访问:在应用程序代码中生成恰当的SQL语句,然后通过JDBC API访问数据库,对数据进行保存、更新、删除或查询操作。 |
持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到以下目标:
- 代码可重用性高,能够完成所有的数据访问操作。
- 如果需要的话,能够支持多种数据库平台。
- 具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。
中间件是在应用程序和系统之间的连接管道。
中间件和普通的应用程序代码的区别在于:前者具有很高的可重用性,对于各种应用领域都适用;后者和特定的业务功能相关,不同业务领域的应用程序代码显然不一样。
中间件的另一个特点是透明性。
提示: 透明与封装具有同样的含义,软件的透明性是通过封装实现细节来达到的。 |
ORM简介
对象-关系映射(ORM,即Object-Relation Mapping)模式指的是在单个组件中负责所有实体域对象的持久化,封装数据访问细节。
ORM提供了实现持久化层的一种模式,它采用映射元数据来描述对象-关系的映射细节,使得ORM中间件能在任何一个Java应用的业务逻辑层和数据库层之间充当桥梁,
常用的ORM中间件:
ORM软件 | URL |
Hibernate | http://www.hibernate.org |
TopLink | http://otn.oracle.com/products/ias/toplink/content.html |
Torque | http://jakarta.apache.org/turbine/torque/index.html |
ObjectRelationalBridge | http://db.apache.org/ojb/ |
FrontierSuite | http://www.objectfrontier.com |
Castor | http://castor.exolab.org |
FreeFORM | http://www.chimu.com/projects/form/ |
Expresso | http://www.jcorporate.com |
JRelationalFramework | http://jrf.sourceforge.net |
VBSF | http://www.objectmatter.com |
Jgrinder | http://sourceforge.net/projects/jgrinder/ |
JDO模式
Java Date Object(JDO)是SUN公司制定的描述对象持久化语义的标准API。
CMP模式
在J2EE架构中,CMP(Container-managed Persistence)表示由EJB容器来管理实体EJB的持久化,EJB容器封装了对象-关系的映射及数据访问细节。
Hibernate API简介