hibernate与mybatis的比较

栏目: Hibernate · 发布时间: 6年前

近来面试了不少 java 程序员,基本上都是SSM,这个M,就是mybatis,数据持久层框架。

java世界里,另一个著名且应用广泛的持久层框架是HIbernate?我以前搞.net的时候,也用它,NHibernate,。net的版本。

两者比较,有啥区别?

Hibernate试图完全用面向对象的方法来访问数据库,最终将我们的代码转化成 SQL 到数据库里执行,返回结果用实体类或集合之类来接收;当然Hibernate也可以执行我们写的SQL语句,但返回结果需要 程序员 手动做一个转换,才能赋值到实体类或集合里。

而mybatis则需要我们在注解或配置里写好SQL,交给它来执行。返回结果也是用实体类或集合之类来接收。

先给结论: mybatis比hibernate要实用和灵活

hibernate使得程序员可以像开发业务模块一样,直接写代码来操作数据库,理论上可以完全不懂SQL,因为这部分工作它替我们做了。但是,最强大的之处也往往是最薄弱之处。正因为转化成SQL这个工作hibernate替我们做了,这是个黑箱,我们写代码的时候,往往不知道它会转成什么样子,感觉不可控,尤其是出了问题调试的时候。有时候,我们明明只是查询,但天知道数据库居然会开启了一个事务。这里面原因很多,可能是我们先从数据库查找,获得了一个对象,然后中途修改了这个对象的属性,hibernate就会自动持久化到数据库,从而开启了事务。

本来呢,将程序员当成普通用户,啥事都帮他做好,表面上方便,但掩盖了原理,反而阻碍了开发人员的理解和深入,这是微软系列的风格,JAVA应该是偏重于开源和参与,所以我觉得hibernate是走偏了。

像mybatis就挺好啊,还是写SQL语句,但返回结果封装在对象里,灵活与便利很好地结合起来。事实上,hibernate简单的增删改查不用写SQL,但像统计分析这类比较复杂的,我们还是照样写SQL。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解机器学习

图解机器学习

杉山将 / 许永伟 / 人民邮电出版社 / 2015-4 / 49

本书用丰富的图示,从最小二乘法出发,对基于最小二乘法实现的各种机器学习算法进行了详细的介绍。第Ⅰ部分介绍了机器学习领域的概况;第Ⅱ部分和第Ⅲ部分分别介绍了各种有监督的回归算法和分类算法;第Ⅳ部分介绍了各种无监督学习算法;第Ⅴ部分介绍了机器学习领域中的新兴算法。书中大部分算法都有相应的MATLAB程序源代码,可以用来进行简单的测试。 本书适合所有对机器学习有兴趣的初学者阅读。 187张图......一起来看看 《图解机器学习》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具