Hibernate 和 MyBatis 的区别
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 的区别的更多相关文章
- 对比JPA 和Hibernate 和 Mybatis的区别
1.JPA.Hibernate.Mybatis简单了解 1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现. 2.Hibernate:目前最流行的ORM框架,设计灵巧,文档丰富 ...
- Hibernate 和Mybatis的区别
Hibernate 和Mybatis的区别 1.hibernate 入门门槛高,是一个标准的ORM框架(对象关系映射),不需要程序写sql,sql语句自动生成,对sql语句进行优化.修改比较困难. ...
- Hibernate 与mybatis的区别
转自:https://blog.csdn.net/julinfeng/article/details/19821923 为方便以后准备面试,把一些常用的技术整理出来,会不定期更新. 首先简单介绍下两者 ...
- 如何回答面试中问到的Hibernate和MyBatis的区别
这边主要是写给那些准备去面试的(没什么经验的)应聘者看的,为了在面试中更好的回答这个问题,我做一个简单的梳理和总结. 作为一名职场新人,经历过多次的面试,由于在简历中提及了Hibernate和MyBa ...
- hibernate和mybatis的区别
本文出自 alicejiyayun原创 第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的 ...
- hibernate与mybatis的区别
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- 对于Hibernate和MyBatis的区别与利弊,谈谈你的看法
Hibernate与MyBatis的对比: 1.MyBatis非常简单易学,与Hibernate相对复杂,门槛较高: 2.两者都是比较优秀的开源产品: 3.当系统属于二次开发,无法对于数据库结构做到控 ...
- Hibernate 和 Mybatis的区别
第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...
- Hibernate与 MyBatis的区别
第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ...
随机推荐
- How to set asp.net Identity cookies expires time
If IsPersistent property of AuthenticationProperties is set to false, then the cookie expiration tim ...
- 生产环境使用nginx做负载均衡配置的五种策略
nginx的upstream目前支持5种方式的分配1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weight和访 ...
- 关于tomcat7服务下面js无法获取JSESSIONID的cookie信息
http://tomcat.apache.org/tomcat-5.5-doc/config/context.html Does anyone know what changed in the con ...
- 学 shell (1/5)
假设这是某脚本 x.sh 的内容,使用 sh x.sh arg1 来执行该脚本 #!/bin/bashcd `dirname $0`/..source scripts/status.shstart $ ...
- chrome设置捕获异常时自动暂停js
1. [F12 | 右键审查元素] 打开chrome调试工具 2. 进行如下设置 a. 点击Pause on exceptions b. 选中Pasue On Caught Exceptions 设置 ...
- 6. Oracle闪回特性
Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...
- Possible causes are invalid address of the remote server or browser start-up failure.
appium 脚本运行不起来 Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:4723 [ ...
- Android中使用第三方jar包
步骤: 方法1:Eclipse下, 右键工程, Build path, java build path, 选择libraries 在右边的按钮中点击“Add Library” 选择“User libr ...
- 7.11python多进程
#!/usr/bin/env python #!--*--coding:utf-8 --*-- #!@Time :2018/7/11 19:27 #!@Author TrueNewBee import ...
- apache 设置环境变量
在apache设置环境变量有什么好处: 提高代码的可移植性,不用因为换服务器而改项目代码