Hibernate有很多值得学习的地方,这里我们主要介绍orm框架,包括介绍Spring+Hibernate+范型+可变参数等方面。
Hibernate在解决性能问题方面做得非常好。有了它的缓存机制,使用第三方缓存和数据库连接池,就较好的解决的性能问题。但这些还不够,Hibernate给了开发者足够的自由,让开发者自己去控制性能问题。
学习了一段时间的ibatis,我觉得Hibernate有着ibatis无法替代的优势。
1.Hibernate不仅仅作为持久层的orm框架存在,它除了dao层的持久化操作外,还有很多。
在注解annotation已经走向主流的今天,Hibernate 迅速响应,让xml部署描述符成为可选的。Hibernate annotation 对大字段的处理只是一个@Lob就搞定了。
Hibernate search对Lucene进行了轻量级的封装,全文检索变得非常简单。
Hibernate validator被认为是最合理的验证方式,将验证策略直接附在贯穿各层的领域模型domain上,不再需要哪些web框架的xml方式的验证,代码中不再出现大量的非空/null的判断。
2.jbpm, Jbpm业务流程引擎的持久层采用Hibernate来实现,要想使用jbpm,Hibernate是必须的。我想,业务流程管理无比重要,在soa迅速发展的今天,如果实施soa项目,业务流程管理是必然和必须的。因为soa就是业务和it技术的融合,是业务流程管理和it基础架构的融合。在soa中,业务管理是***位的,这需要相应的技术来实现该业务流程管理。开源领域的jbpm我想会是***。所以,为了将来有可能实施soa项目,为了实现soa的业务流程管理,应该使用Hibernate.
3.大家都知道,Hibernate将ejb2时代的实体bean赶进了历史,而ejb3的jpa标准也只不过是Hibernate的子集而已。jsr规范请求的威力是巨大的,没有各种jsr规范请求,就不会有各种应用程序框架,各种应用程序框架只是那些jsr规范请求的实现者。jpa 作为持久层的规范标准,引导持久层orm框架的方向,jpa同样以面向对象的方式操作数据库,而不是写sql语句。规范标准都完全orm,不写sql了,你还有理由不跟着它吗?
4.Spring+Hibernate+范型+可变参数,这是一个非常强大的组合,对应普通的crud操作,你不再需要重复写那些烦人的相似的dao层和manager层的代码,仅仅需要写一次,就完成了所有大量的crud操作。Ibatis尽管也支持范型,但始终没有Hibernate支持的好
【编辑推荐】
- Hibernate专业知识介绍
- 讨论Hibernate和模型对象
- Hibernate查询缓存全面分析
- 概括Hibernate主键生成机制
- Hibernate Pager基础介绍