具体说明:

Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。
Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。
Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码,提高效率。但是Hibernate的学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。
总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。

总而言之:

hibernate:是一个标准ORM框架(对象关系映射)。入门门槛较高的,不需要程序写sql,sql语句自动生成了。对sql语句进行优化、修改比较困难的。
应用场景:适用与需求变化不多的中小型项目,比如:后台管理系统,erp、orm、oa。。
mybatis:专注是sql本身,需要程序员自己编写sql语句,sql修改、优化比较方便。mybatis是一个不完全 的ORM框架,虽然程序员自己写sql,mybatis 也可以实现映射(输入映射、输出映射)。
应用场景:适用与需求变化较多的项目,比如:互联网项目。

mybatis和hibernate的区别---Mybatis的学习笔记(四)相关推荐

  1. MyBatis和ORM的区别以及Mybatis和Hibernate的区别

    ORM: 即Object Relation Mapping,即对象关联映射.所以ORM就是将Java中的对象和数据库中的表关联对应起来. 思考一下Mybatis,Mybatis相当于将mapper中的 ...

  2. MySQL高级学习笔记(四)

    文章目录 MySQL高级学习笔记(四) 1. MySql中常用工具 1.1 mysql 1.1.1 连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 ...

  3. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  4. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  5. RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)

    RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...

  6. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  7. Ethernet/IP 学习笔记四

    Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...

  8. OpenCV学习笔记四-image的一些整体操作

    title: OpenCV学习笔记四-image的一些整体操作 categories: 编程 date: 2019-08-08 12:50:47 tags: OpenCV image的一些操作 sP4 ...

  9. 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码

    吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...

最新文章

  1. 我为 VS Code 开发了一个 Deno 插件
  2. HDU 1198 Farm Irrigation
  3. hmailserver批量添加用户
  4. mysqldump全量恢复_mysql全量备份和快速恢复的方法整理
  5. mac java 版本_Mac 下 Java 多版本切换
  6. Redis学习笔记 - 数据类型与API(2)String
  7. 计算机硬件的基本组成(计算机组成原理3)
  8. 手机反编译java源码,Android反编译(一)之反编译JAVA源码
  9. 泽众AutoRunner软件的使用方法,以测试win10环境下系统自带的计算器为例
  10. 英文文献很难找,哪里可以找英文文献呢?
  11. 计算机语言变成乱码怎么办,电脑文本文档出现乱码,教你电脑文本文档出现乱码怎么办...
  12. vrp java_HCIA-VRP基础及操作
  13. Web 开发中地图使用——高德地图定位功能
  14. 【中级计量经济学】Lecture 5 自相关
  15. sudo chmod -R 777
  16. Redis删除过期数据的策略概要
  17. GD32F310移植FreeRTOS
  18. POI java excel 生成下拉列表
  19. php设计模式及耦合性和多形性
  20. Hive性能优化秘籍

热门文章

  1. (一)vue 数据更新 试图不更新 解决办法
  2. promise 是什么?有哪些状态和参数?如何使用?
  3. 简单实现vue验证码60秒倒计时功能
  4. JAVA调用HTTP接口
  5. 为什么map对象不能使用stl中的sort函数
  6. 《腾讯传》读后感一——时势造英雄
  7. Linux(CentOS)同步时间
  8. Java数据类型以及变量的定义
  9. ubuntu搭建lnmp+Yaf+Redis环境
  10. 内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]...