在上篇博客中介绍了struts2框架的原理和流程分析,可以说struts框架一路走来,改变非常大,而且让我们开发人员变得更加轻松,里面的设计理念的改变也是让我们编程人员的思路得到更大的扩展。
可以说,一个先进的技术或者框架就是要不断的进步才能永远让编程人员喜欢和使用,一个优秀的编程人员也是要不断的进步才能永远让这个世界变得更加绚丽多彩。
其实编程就是这样有意思的!
前面说了一些宏观上学习框架相关的思想方面的东西,下面继续来介绍我经常使用的框架和框架的分析,这篇博客主要介绍的是hibernate框架。
首先说hibernate框架是数据持久层的框架,这个框架是非常强大的,它让编程人员纯粹的用面向对象的方式来做开发,让编程人员所面对的都是对象。仅仅从这一点它的设计思路就是非常让编程人员喜爱的。
回想我们普通的开发流程,和客户沟通定需求,抽象出来原型,从原型中建立数据模型到库表结构的建立,之后在映射成对象模型,之后在用oo的设计思想完成后续的程序开发。但是当我们使用了hibernate框架以后,原先的设计思路就显得不再那么具有优势了。我们直接建立对象模型,之后利用hibernate框架映射成数据模型,我们不再去考虑数据库关系模型的东西,仅仅考虑的东西仅仅就是类和对象,这样的开发才是面向对象的开发,也才是最接近人类思考问题的方式。所以hibernate框架的设计思路是非常好的。
hibernate框架设计思路的优越性其实体现在了它本身的框架的原理上。hibernate封装了JDBC,减轻了开发人员在持久层的大量重复性工作,它利用了java反射机制来实现程序的透明性;它就是通过这两点才达到从对象出发而非关系数据库出发的效果。
介绍这么多理论性的东西之后我们能够感觉到hibernate框架的强大,来看看它的结构图:
在hibernate框架中有几个比较重要的接口和类:
- Query接口:Query负责执行各种数据库查询。它可以使用HQL语句或SQL语句两种表达方式。
- Configuration类:Configuration类负责配置并启动Hibernate,创建SessionFactory对象
- SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象
- Session接口:Session接口负责执行被持久化对象的CRUD操作
- Transaction接口:Transaction接口负责事务相关的操作
hibernate框架就是在利用这几个接口来封装了JDBC,而且我们用这些接口来操作数据库变得非常简单,减少了我们在持久层的代码量。
从这个结构图和我的一些分析就能发现hibernate框架是非常强大,而且它给我们开发人员的开发带来了非常大的便利,尤其是他的设计思路还有它的“全自动”的映射对象模型和关系模型。
但是hibernate框架也有它的一些缺点:
- 既然是封装了JDBC,所以很明显它没有JDBC的效率高,尤其是在大量的处理表更新操作的时候。
- 它有局限性,一个持久化类不能映射多个表
- 它应对大数量的时候显得非常笨拙,这一点没有JDBC和接下来要介绍的IBatis框架
其实一项技术或者一个框架都有它的优缺点,选择最合适的才是王道。
这篇博客主要是介绍了hibernate框架的结构和分析,阐述了hibernate框架的优缺点,【具体详细使用要等到我的框架学习的后续文章】。总的来说hibernate框架在持久层的作用非常明显,我们懂得了它的优缺点之后,才能做到我们是否是要选择这个框架作为我们持久层开发的必须的技术支撑,所以这些我常用的框架结构和分析不单单是在介绍一些框架学习的宏观知识把控,更多的是在为将来做项目开发中选择合适的技术支撑做铺垫。
后续的博客在不断更新,希望这些博客能够对读者的开发过程带来帮助,当然如果读者对我的博客有什么好的建议或者意见,请与我联系。联系方式见博客侧边栏!