持久化框架Mybatis 和 Hibernate的比较(一)
2016-08-09 17:02
344 查看
刚工作两年,接触了半年hiberate(也就做了一个项目),之后一直用的ibatis和myatis,上学的时候比较喜欢sql,所以遇到mybatis这种纯sql的框架ORM框架就非常推崇,有点鄙视hiberate了,最近突然惊醒,存在即合理,hibernate肯定也要他的强大的地方,所以整理了一下网上的和自己的理解
Hibernate优势
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射,Hibernate的hql语句自动就生成了。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便,Hibernate的代码比较简洁。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL,比如分页,mybatis因为SQL是自定义的,所以物理分页的话需要自己针对数据库类型进行判断和分页sql拼接,比如oracle拼个rownum,mysql拼个limit,这样采用切入的实现是最合适的 。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,但mybatis可以借用第三方缓存去实现业务。
Mybatis优势
MyBatis可以进行更为细致的SQL优化,可以减少查询字段,Hibernate的后期sql优化需要开发者对Hibernate的掌握比较好才能进行。
MyBatis容易掌握,只要sql语句掌握的还不错,基本很短时间入门,而Hibernate门槛较高(这里的高是说对她的深入使用,如果只做单纯的小项目,增删改查,hql语句较之于mybatis分分钟秒杀它)。
Mybatis书写的代码更易于管理者去把控项目的质量,后台语句一目了然
Hibernate优势
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射,Hibernate的hql语句自动就生成了。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便,Hibernate的代码比较简洁。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL,比如分页,mybatis因为SQL是自定义的,所以物理分页的话需要自己针对数据库类型进行判断和分页sql拼接,比如oracle拼个rownum,mysql拼个limit,这样采用切入的实现是最合适的 。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,但mybatis可以借用第三方缓存去实现业务。
Mybatis优势
MyBatis可以进行更为细致的SQL优化,可以减少查询字段,Hibernate的后期sql优化需要开发者对Hibernate的掌握比较好才能进行。
MyBatis容易掌握,只要sql语句掌握的还不错,基本很短时间入门,而Hibernate门槛较高(这里的高是说对她的深入使用,如果只做单纯的小项目,增删改查,hql语句较之于mybatis分分钟秒杀它)。
Mybatis书写的代码更易于管理者去把控项目的质量,后台语句一目了然
相关文章推荐
- 2016七夕奇葩礼物第一名,不服来辩!
- C++11的占位符std::placeholders
- JSP Cookie 处理
- 表结构设计-每张表都需要有外键和type
- 几何总论
- 数据结构实验之二叉树四:还原二叉树
- 【4】Median of Two Sorted Arrays
- jQuery中的checkbox问题
- ajax重写,js方法重新
- windows集成身份验证
- 交互式输入输出程序实例
- UVA 11636 Hello World!
- DirectShow的基本单元:Filter
- Source not found错误
- Mysql存储引擎之TokuDB以及它的数据结构Fractal tree(分形树)
- linux 配置 tomcat 自动发布脚本
- 关于微信支付授权目录以及当前URL未注册的问题
- Dynamics CRM 2016 + Visual studio 2015 开发环境搭建
- map和set的原理
- tableIView 区头的一点问题