博客
关于我
hibernate和mybatis的区别
阅读量:339 次
发布时间:2019-03-04

本文共 853 字,大约阅读时间需要 2 分钟。

  一、两者最大的区别

  针对简单逻辑,Hibernate与MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。

  针对高级查询,MyBatis需要手动编写SQL语句,以及ResultMap,而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于流程。

  二、开发难度对比

  Hibernate的开发难度大于MyBatis,主要由于Hibernate比较复杂,庞大,学习周期比较长。

  MyBatis则相对简单,并且MyBatis主要依赖于生气了的书写,让开发者刚进更熟悉。

  三、sql书写比较

  Hibernate也可以自己写sql来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性,不过Hibernate具有自己的日志统计。

  MyBatis的sql是手动编写的,所以可以按照要求指定查询的字段,不过没有自己的日志统计,所以要借助Log4j来记录日志。

四、数据库扩展性计较

  Hibernate与数据库具体的关联在XML中,所以HQL对具体是用什么数据库并不是很关心

  MyBatis由于所有sql都是依赖数据库书写的,所以扩展性、迁移性比较差。

 五、缓存机制比较

  Hibernate的二级缓存配置在SessionFactory生成配置文件中进行详细配置,然后再在具体的表对象映射中配置那种缓存。

  MyBatis的二级缓存配置都是在每个具体的表对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓冲机制,并且MyBatis可以在命名空间中共享相同的缓存配置和实例,通过Cache-ref来实现。

    两者比较,因为Hibernate对查询对象有着良好的管理机制,用户无需关心SQL,所以在使用二级缓存时如果出现脏数据,系统会报出错误提示。 而MyBatis在这一方面使用二级缓存时需要特别小心,如果不能完全去顶数据更新操作的波及范围,避免cache的盲目使用,否则,脏数据的出现会给系统的正常运行带来很大的隐患。

转载地址:http://cfkr.baihongyu.com/

你可能感兴趣的文章
一个简单的shell脚本:weblogic日志按天生成(日志压缩)
查看>>
skyfans之每天一个Liunx命令系列之二:uptime
查看>>
js中的文档碎片的理解与使用
查看>>
Kubernetes十三--Pod定义文件内容详解
查看>>
3、69道Spring面试题及答案
查看>>
普歌- LRF-(简单易懂)笔记本电脑USB接口案例 接口多态(向下转型)
查看>>
Java中如何构建树结构
查看>>
若依启动流程
查看>>
解决vue部署到nginx后刷新404
查看>>
解决eclipse字体背景变红或者变绿的问题
查看>>
一个面试大牛的经历
查看>>
扫雷小游戏——简单易懂
查看>>
将ip地址用整形保存
查看>>
软件架构-zookeeper快速入门
查看>>
软件架构-zookeeper场景和实现
查看>>
「初级篇」跟我一起学docker(四)--容器的基本操作
查看>>
22 岁毕业做程序员的「普通」人,50 岁时的人生轨迹是怎样的?
查看>>
『高级篇』docker之安全认证kubernetes命令熟悉(40)
查看>>
scala上界与下界、协变与逆变
查看>>
java稀疏数组
查看>>