ORM进阶:Hibernate的优劣对比

来源:互联网 发布:重庆大学网络教育专科 编辑:程序博客网 时间:2024/06/05 03:51

hibernate是一种是轻量级的ORMapping框架。学过EntityFramework的,会感觉挺亲切的。

 

对于各种层次程序员对数据库的设计:

 

    小菜程序猿这样做:首先考虑数据的存储,对于功能的实现,如何方便如何来。至于说冗余神马的,不予考虑。

    资深程序猿这样做:首先设计数据库的关系模型,用工具画画ER图,或者画一下物理模型。考虑一下关系模型。好点儿的懂得利用工具,把设计好的模型转换成数据库脚本。然后扔数据库里。然后,在功能实现过程中,对于难以实现的功能,算啦,还是修改一下数据库。这样好做多了。

    骨灰级程序猿这样做:首先分析业务需求,设计对象模型。考虑各种多重度,维护关系等等。考虑数据的存储性能,数据量的影响……

 

以上纯属…………

    在面向对象的世界中,对象模型是非常重要的。因为面向对象的思想使得职责更加清晰。

    使用面向对象的编程,开发过程中,可以不用考虑表结构。脑子里没有表的概念。只对对象进行操作。

 

hibernate作为持久层:

 

 

 

使用hibernate的好处:

1使开发人员职责专一hibernate自己封装了一套机制。通过对象模型和*.hbm.xml配置信息,自动的将对象模型转换成表结构。使得开发人员,只关注对象,忽略表结构。面向对象的开发。

2持久层容易更换hibernate是轻量级的持久层框架,也容易进行更换。比如更换存储方式,只需要修改*.hbm.xml文件即可。重新生成表结构。而代码不用进行修改。所以使用hibernate更加容易进行转换

3提高了编码效率。使用hibernate作为持久层,省去了JDBC代码。使得业务层开发人员不需要考虑数据的逻辑结构,只关心业务的数据实体。

 

 

Hibernate的缺点:

1不灵活。既然操作的都是对象,相比与使用传统的sql语句来说,不方便。

3实现复杂。而且很多复杂的查询sql语句,很难用hibernate进行查询。所以对于程序的调优来说有困难。

3大数据处理慢。对象模型和关系模型的转换,将带来时间消耗。所以hibernate对大批量的数据操作还存在问题。

 

 

 

0 0
原创粉丝点击