MyBatis和Hibernate的优缺点对比。
Hibernate的优点:
1、hibernate是全自动,hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。
2、功能强大,数据库无关性好,O/R映射能力强,需要写的代码很少,开发速度很快。
3、有更好的二级缓存机制,可以使用第三方缓存。
4、数据库移植性良好。
5、hibernate拥有完整的日志系统,hibernate日志系统非常健全,涉及广泛,包括sql记录、关系异常、优化警告、缓存提示、脏数据警告等
Hibernate的缺点:
1、学习门槛高,精通门槛更高,程序员如何设计O/R映射,在性能和对象模型之间如何取得平衡,以及怎样用好Hibernate方面需要的经验和能力都很强才行
2、hibernate的sql很多都是自动生成的,无法直接维护sql;虽然有hql查询,但功能还是不及sql强大,见到报表等变态需求时,hql查询要虚,也就是说hql查询是有局限的;hibernate虽然也支持原生sql查询,但开发模式上却与orm不同,需要转换思维,因此使用上有些不方便。总之写sql的灵活度上hibernate不及mybatis。
Mybatis的优点:
1、易于上手和掌握,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。
2、sql写在xml里,便于统一管理和优化, 解除sql与程序代码的耦合。
3、提供映射标签,支持对象与数据库的orm字段关系映射
4、 提供对象关系映射标签,支持对象关系组建维护
5、提供xml标签,支持编写动态sql。
6、速度相对于Hibernate的速度较快
Mybatis的缺点:
1、关联表多时,字段多的时候,sql工作量很大。
2、sql依赖于数据库,导致数据库移植性差。
3、由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。
4、对象关系映射标签和字段映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。
5、DAO层过于简单,对象组装的工作量较大。
6、不支持级联更新、级联删除。
7、Mybatis的日志除了基本记录功能外,其它功能薄弱很多。
8、编写动态sql时,不方便调试,尤其逻辑复杂时。
9、提供的写动态sql的xml标签功能简单,编写动态sql仍然受限,且可读性低。
转载于:https://www.cnblogs.com/javacatalina/p/6590321.html
MyBatis和Hibernate的优缺点对比。相关推荐
- MyBatis和Hibernate的优缺点对比
Hibernate的优点: 1.hibernate是全自动,hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql. 2.功能强 ...
- Mybatis与Hibernate的详细对比
转载自 Mybatis与Hibernate的详细对比 前言 这篇博文我们重点分析一下Mybatis与Hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate ...
- 【持久化框架】Mybatis与Hibernate的详细对比
前言 这篇博文我们重点分析一下Mybatis与Hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理. Mybatis [持久化框架]Mybatis简 ...
- Mybatis和hibernate的优缺点比较
Hibernate :Hibernate 是当前最流行的ORM框架,对数据库结构提供了较为完整的封装. Mybatis:Mybatis同样也是非常流行的ORM框架,主要着力点在于POJO 与SQL之间 ...
- jdbc,mybatis,hibernate各自优缺点及区别
jdbc,mybatis,hibernate各自优缺点及区别 先比较下jdbc编程和hibernate编程各自的优缺点. JDBC: 我们平时使用jdbc进行编程,大致需要下面几个步骤:1,使用jdb ...
- mybatis和hibernate的对比总结
mybatis和hibernate 第一步, 首先让我们对mybatis和hibernate对比了解下 1. Hibernate :Hibernate 是当前非常流行的ORM框架,对数据库结构提供了较 ...
- hibernate oracle查询最大值_Java大数据:Mybatis和Hibernate对比分析
在Java企业级平台开发任务当中,持久层框架的选择,Mybatis和Hibernate都占据一定的市场.从大趋势来说,传统企业偏爱Hibernate,而互联网更偏爱Mybatis.今天的大数据基础分享 ...
- mybatis与hibernate的对比
相同点: (1)Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session, ...
- jdbc与hibernate的优缺点比较
jdbc与hibernate的优缺点比较 一. Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系.Hibernate可以 ...
- MyBatis 与 Hibernate 到底哪个更快?
前言 由于编程思想与数据库的设计模式不同,生出了一些ORM框架. 核心都是将关系型数据库和数据转成对象型.当前流行的方案有Hibernate与myBatis. 两者各有优劣.竞争激烈,其中一个比较重要 ...
最新文章
- 敏捷团队如何通过Leangoo领歌做迭代管理、迭代规划及任务协同
- flat在java中的含义_java – 在flatingBy中使用flatMap的优雅方法
- C# WinForm给Button按钮或其它控件添加快捷键响应
- 分布式系统关注点:无状态
- python 是什么类型的语言-python是一种什么类型的语言
- Halcon初学者知识【17】如何将零件提取dxf图
- C++内存模型和原子类型操作
- pat 1034. Head of a Gang (30)
- php获取表单后如何保存到数据库中,php – 如何将数据从HTML表单保存到WordPress中的数据库表?...
- 推荐一个免费的在线图片工具网站
- 什么集成mysql_mysql集成部署
- 设计模式系列 - 原型模式
- 特征经验分享以及管理文件,远程运行的小技巧
- Qt中焦点策略FocusPolicy的使用
- 51单片机自学好找工作吗,怎样学才能找到适合的工作
- Halcon常用图像预处理算子总结
- DFS和BFS算法框架
- 华南理工大学计算机学院创新班,高校纷推创新班揽生源 逐步淘汰冷门专业
- 计算机影视后期试题,(完整版)《影视后期制作》期末考试试题
- Ubuntu +NIVIDIA驱动 + CUDA + Cudnn 的详细安装指南(每一步都有说明)
热门文章
- redis stream持久化_带你彻底理解 Redis 持久化
- static_cast,reinterpret_cast,const_cast,dynamic_cast:
- MAC VSCode Go代码第一次运行配置
- SpringCloudRibbon
- 读博的经验对我读学位期间指导最大的文章
- linux系统Vsftpd搭建FTP
- Spark 学习(三) RDD基本介绍
- CodeForces992E 二分 + 树状数组(线段树)
- kafka和mqtt的区别和联系
- 记一次route配置不起作用的问题解决过程