典型的Web应用的后端是持久层。开发者总是低估构建他们自己的持久层框架的挑战性。系统内部的持久层不但需要大量调试时间,而且还经常因为缺少功能使之变得难以控制,这是持久层的通病。幸运的是,有几个对象/关系映射(Object/Relation Mapping,ORM)开源框架很好地解决了这类问题,尤其是Hibernate。Hibernate为Java提供了持久化机制和查询服务,它还给已经熟悉SQL和JDBC API的Java开发者创造了一个学习桥梁,使他们学习起来很方便。Hibernate的持久对象是基于POJO(Plain Old Java Object)和Java集合(collections)的。此外,使用Hibernate并不妨碍你正在使用的IDE(Integrated Development Enviroment)。
下面是Hibernate所负责的内容。
— 如何查询对象的相关信息。
Hibernate是通过一个面向对象的查询语言(HQL)或正则表达的API来完成查询的。HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。HQL语言容易理解且文档做得很好。HQL是一种面向对象查询的自然语言,很容易就能学会它。
— 如何存储、更新、删除数据库记录。
— Hibernate这类的高级ORM框架支持大部分主流数据库,并且支持父表/子表(Parent/ child)关系、事务处理、继承和多态。