Hibernate 和 MyBatis 的增、删、查、改,对于业务逻辑层来说大同小异,对于映射层
而言 Hibernate 的配置不需要接口和 SQL,相反 MyBatis 是需要的。对于 Hibernate 而言 ,
不需要编写大量的 SQL,就可以完全映射,同时提供了日志、缓存、级联(级联比 MyBatis
强大)等特性, 此外还提供 HQL (Hibernate Query Language )对 POJO 进行操作,使用十
分方便,但是它也有致命的缺陷。

由于无须 SQL,当多表关联超过 3 个的时候,通过 Hibernate 的级联会造成太多性能的
丢失,又或者我现在访问一个财务的表,然后它会关联财产信息表,财产又分为机械、原
料等,显然机械和原料的字段是不一样的,这样关联宇段只能根据特定的条件变化而变化,
而 Hibernate 无法支持这样的变化 。 遇到存储过程, Hibernate 只能作罢。更为关键的是性能,
在管理系统的时代,对于性能的要求不是那么苛刻,但是在互联网时代性能就是系统的根
本,响应过慢就会丧失客户,试想一下谁会去用一个经常需要等待超过 10 秒以上的应用
呢?

以上的问题 MyBatis 都可以解决, MyBatis 可以自由书写 SQL、支持动态 SQL、处理
列表、动态生成表名、支持存储过程。这样就可以灵活地定义查询语句 ,满足各类需求和
性能优化的需要,这些在互联网系统中是十分重要 的。
但 MyBatis 也有缺陷 。首先,它要编写 SQL 和映射规则,其工作量稍微大于 Hibernate 。
其次,它支持的工具也很有限,不能像 Hibernate 那样有许多的插件可以帮助生成映射代码
和关联关系,而即使使用生成工具,往往也需要开发者进一步简化, MyBatis 通过手工编
码,工作量相对大些。所以对于性能要求不太苛刻的系统,比如管理系统、 ERP 等推荐使
用 Hibernate;而对于性能要求高、响应快、灵活的系统则推荐使用 MyBatis 。

Hibernate 和 MyBatis 的区别的更多相关文章

  1. 对比JPA 和Hibernate 和 Mybatis的区别

    1.JPA.Hibernate.Mybatis简单了解 1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现. 2.Hibernate:目前最流行的ORM框架,设计灵巧,文档丰富 ...

  2. Hibernate 和Mybatis的区别

    Hibernate 和Mybatis的区别   1.hibernate 入门门槛高,是一个标准的ORM框架(对象关系映射),不需要程序写sql,sql语句自动生成,对sql语句进行优化.修改比较困难. ...

  3. Hibernate 与mybatis的区别

    转自:https://blog.csdn.net/julinfeng/article/details/19821923 为方便以后准备面试,把一些常用的技术整理出来,会不定期更新. 首先简单介绍下两者 ...

  4. 如何回答面试中问到的Hibernate和MyBatis的区别

    这边主要是写给那些准备去面试的(没什么经验的)应聘者看的,为了在面试中更好的回答这个问题,我做一个简单的梳理和总结. 作为一名职场新人,经历过多次的面试,由于在简历中提及了Hibernate和MyBa ...

  5. hibernate和mybatis的区别

    本文出自 alicejiyayun原创 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的 ...

  6. hibernate与mybatis的区别

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

  7. 对于Hibernate和MyBatis的区别与利弊,谈谈你的看法

    Hibernate与MyBatis的对比: 1.MyBatis非常简单易学,与Hibernate相对复杂,门槛较高: 2.两者都是比较优秀的开源产品: 3.当系统属于二次开发,无法对于数据库结构做到控 ...

  8. Hibernate 和 Mybatis的区别

    第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...

  9. Hibernate与 MyBatis的区别

    第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ...

随机推荐

  1. Java知多少(45)未被捕获的异常

    在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public static void ma ...

  2. RedHat Linux7.3 使用yum安装时报错,改用CentOS yum源

    在使用redhat linux的yum来安装或者更新软件的时候会有如下提示: [root@node1 home]# yum install package_name Loaded plugins: p ...

  3. ABBYY FineReader 12使用教程

    说到OCR图文识别软件,自然少不了ABBYY FineReader 12.ABBYY FineReader 12可快速方便地将扫描纸质文档.PDF文件和数码相机的图像转换成可编辑.可搜索的文本.我们已 ...

  4. akka pubsub example

    测了一个小时的 Pubsub 模式,发现这个模式和自己预期的不太一样,具体表现在: 1. 当 subscriber 订阅了某个 topic 并附带 groupName 时,如果 publish 发布的 ...

  5. SpringBoot thymeleaf使用方法,thymeleaf模板迭代

    SpringBoot thymeleaf使用方法,thymeleaf模板迭代 SpringBoot thymeleaf 循环List.Map ============================= ...

  6. Fiddler 使用命令行

    在 Fiddler 界面左下角处,可以输出一些快捷命令,常用的快捷命令如下: help:查看命令帮助cls:清屏,即清空会话列表中的所有会话select:选择某一类型的会话,如 select html ...

  7. subordinate clause/从句

    What Is a Subordinate Clause? (with Examples)A subordinate clause (or dependent clause) is a clause ...

  8. vs2017默认以管理员运行

    1. 打开VS的安装目录,找到devenv.exe,右键,选择“兼容性疑难解答”. 2. 选择“疑难解答程序” 3. 选择“该程序需要附加权限” 4. 确认用户帐户控制后,点击测试程序,不然这个对话框 ...

  9. day1 一、编程语言与计算机五大组成部分

    一.编程与编程语言 1.什么是编程语言 语言是一个事物与另一个事物沟通的介质. 编程语言是程序员与计算机沟通的介质. 2.什么是编程 编程就是程序员按照某种编程的语法规范将自己想让计算机做的事情表达出 ...

  10. MySQL使用root用户授权出现错误ERROR 1045 (28000) at line 2: Access denied for user 'root'@'%' (using password: YES)解决办法

    参考:https://blog.csdn.net/open_data/article/details/42873827 使用MySQL的root用户登录出现错误提示 ERROR 1045 (28000 ...