一、为什么需要hibernate
- 故事1
小明长大了,打算出国旅游,想周游世界,小明想先去德国,但是小明不会德语,于是小明通过一年的努力,终于学会了德语,然后小明去德国旅游了一圈,充分的感受到了德国的文化风情。回来之后,小明又想去埃及了,但是小明又不会埃及语言,于是小明只能再花一年时间学习埃及语言了。。。。后来小明发现,这样实在是行不通,因为小明还有好多国家想去,这个时候有人出主意,给小明找个特别牛逼的翻译,这个翻译会全世界所有的语言,小明见到翻译之后非常高兴,从此周游世界畅通无阻了。
- 故事2
客户马大凡:小刘,你们上次给我公司开发悠悠办公系统用的是sql
2000吧,我现在要用mysql 数据库,给换一下吧。
经理刘一手: 可以呀,不过换数据库很费时间,我们要重写业务层,
给加10w元吧!
客户马大凡:要吃人呀,我告你去。
故事就简单讲到这里,故事二中的矛盾,如果经理刘一手在刚开始使用Hibernate框架进行开发,那么在客户要求更换不同的数据库(相当于故事一,小明要去一个新的国家旅游),就不需要那么费劲了,使用hibernate框架可以很好的解决。
二、hibernate是什么
1.hibernate 是一个框架(framework)
2.hibernate 是一个orm框架
- ORM是什么?
对象关系映射(Object Relation Mapping,简称ORM)是一种
为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,
将java程序中的对象自动持久化到关系数据库中。本质上就是将数
据从一种形式转换到另外一种形式。使用orm技术(hibernate是其
中最为流行的)可以在java程序以类和对象的方式去操控数据库表和记录.
orm (object relation mapping) 对象关系映射 框架
o object -> 业务层(只对对象操作)
r relation-> 关系数据库
m mapping 对象关系映射文件
3.hibernate 处于我们项目的持久层位置(正因为如此,所以有人又把hibernate称为 持久层框架)
4.hibernate 实际上就是对jdbc进行了轻量级的封装.
5.hibernate 的基础还是我们java 反射机制,列举一些和hiberante类似的orm框:
apache ojb / toplink / ibatis / ejb cmp
Apache OJB ()
Cayenne ()
Jaxor ()
Hibernate ()
iBatis ()
jRelationalFramework ()
mirage ()
SMYLE ()
TopLink ()
把对象持久化: 把对象的信息保存到数据库或者是文件.
总结: hibernate 是对jdbc进行轻量级封装的 orm 框架,充当项目的持久层.
三、使用hibernate的好处
①引入hibernate可以使工作人员角色细化,让程序员更关心业务流
程。让数据库人员关注数据库相关的各种操作。
②分层更清晰,耦合性更小。
③通用性强:可以更轻松的从一个数据库平台转移到别的平台。
④对象化:把关系数据库变成了Java的对象,更加方便操作。
⑤性能保证:hibernate可能按不同的数据库,处理不同的操作是用
最优化的SQL语句,不用我们去想,对于分等算法,在hibernate中会显
得更简单,可靠。
⑥增加了程序的鲁棒性!