同时在面向对象软件和关系型数据库进行工做,可能会很是复杂和费时。数据在对象和数据库之间可能会不一致,而后致使开发成本会很是高。html
Hibernate 是一个针对 Java 环境的对象关系映射(Object/Relational Mapping (ORM))。对象关系映射的定义为从技术上在数据模型和关系数据库模型之间进行映射。请参考 http://en.wikipedia.org/wiki/Object-relational_mapping 来得到更高层次的讨论。同时,Martin Fowler 的 OrmHate 文章讨论了不少映射不吻合的问题。数据库
尽管在使用 Hibernate 的时候不须要你具备很强的 SQL 背景,可是具备一些对 SQL 和相关概念的的基本了解可以帮助你更加快速和全面的理解 Hibernate。对数据模型(data modeling)原理的了解对使用 Hibernate 很是重要。http://www.agiledata.org/essays/dataModeling101.html 和 http://en.wikipedia.org/wiki/Data_modeling 可以帮助你从开始了解数据模型的原理。app
Hibernate 对 Java 类到数据库表中的映射进行实现,同时也实现了 Java 数据类型到 SQL 数据类型。更进一步,Hibernate 可以对数据进行查询和检索。Hibernate 可以显著的减小针对 SQL 和 JDBC 的手动数据处理。Hibernate 的目标是经过尽可能减小针对 SQL 和 JDBC 须要的手动操做,来减小 95% 的通用数据持久性相关程序开发任务。与其余持久性解决方案不一样的是,Hibernate 并不隐藏 SQL 的强大功能,并保证你对关系技术和知识的投资与往常同样并有效。hibernate
Hibernate 可能不是针对数据中心的最佳解决方案。数据中心的意思是在数据库中实现全部的商业逻辑。Hibernate 针对面向对象域模型和基于 Java 中间层的商业逻辑非更有效率。Hibernate 可以帮助你删除和封装供应商特定 SQL 代码和简化从返回结果集从表格展现转换为对象。orm
若是你但愿参与项目,请参考 http://hibernate.org/orm/contribute/ 连接。htm
针对本指南参考可用的项目和代码请参考 hibernate-tutorials.zip 中的内容。对象
https://www.cwiki.us/display/HIBERNATE/Prefaceip