mybatis和jdbc的区别(mybatis和hibernate的区别)

2025-03-04 10:20:03 0

mybatis和jdbc的区别(mybatis和hibernate的区别)

本文目录

mybatis和hibernate的区别

mybatis与hibernate一样是个orm数据库框架。它与hibernate区别是非常大的,有以下几点:

总结起来:

mybatis:小巧、方便、高效、简单、直接、半自动

hibernate:强大、方便、高效、复杂、绕弯子、全自动

1. hibernate是全自动,而mybatis是半自动。

hibernate完全可以自动生成sql。而mybatis仅有基本的字段映射,仍然需要通过手写sql来实现和管理。

2. hibernate数据库移植性远大于mybatis。

hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,移植性也会随之降低很多,成本很高。

3. hibernate拥有完整的日志系统,mybatis则欠缺一些。

hibernate日志系统非常健全,涉及广泛,而mybatis则除了基本记录功能外,功能薄弱很多。

4. mybatis相比hibernate需要关心很多细节

hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。但也正因为mybatis使用简单,才导致它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开发模式上与传统jdbc区别很小,hibernate则正好与之相反。但是如果使用hibernate很熟练的话,实际上开发效率丝毫不差于甚至超越mybatis。

5. sql直接优化上,mybatis要比hibernate方便很多

由于mybatis的sql都是写在xml里,因此优化sql比hibernate方便很多。而hibernate的sql很多都是自动生成的,无法直接维护sql;总之写sql的灵活度上hibernate不及mybatis。

mybatis:

1. 入门简单,即学即用,提供了数据库查询的自动对象绑定功能。

2. 可以进行更为细致的SQL优化,可以减少查询字段。

3. 缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

4.二级缓存机制不佳。

hibernate:

1. 功能强大,数据库无关性好,O/R映射能力强。

2. 有更好的二级缓存机制,可以使用第三方缓存。

3. 缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

举个形象的比喻:

mybatis:机械工具,使用方便,拿来就用,但工作还是要自己来作

hibernate:智能机器人,但研发它(学习、熟练度)的成本很高,工作都可以摆脱他了,但仅限于它能做的事。

“mybatis”和“hibernate”的区别是什么

mybatis与hibernate一样是个orm数据库框架。它与hibernate区别是非常大的,有以下几点:

总结起来:

mybatis:小巧、方便、高效、简单、直接、半自动

hibernate:强大、方便、高效、复杂、绕弯子、全自动

1. hibernate是全自动,而mybatis是半自动。

hibernate完全可以自动生成sql。而mybatis仅有基本的字段映射,仍然需要通过手写sql来实现和管理。

2. hibernate数据库移植性远大于mybatis。

hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,移植性也会随之降低很多,成本很高。

3. hibernate拥有完整的日志系统,mybatis则欠缺一些。

hibernate日志系统非常健全,涉及广泛,而mybatis则除了基本记录功能外,功能薄弱很多。

4. mybatis相比hibernate需要关心很多细节

hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。但也正因为mybatis使用简单,才导致它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开发模式上与传统jdbc区别很小,hibernate则正好与之相反。但是如果使用hibernate很熟练的话,实际上开发效率丝毫不差于甚至超越mybatis。

5. sql直接优化上,mybatis要比hibernate方便很多

由于mybatis的sql都是写在xml里,因此优化sql比hibernate方便很多。而hibernate的sql很多都是自动生成的,无法直接维护sql;总之写sql的灵活度上hibernate不及mybatis。

mybatis:

1. 入门简单,即学即用,提供了数据库查询的自动对象绑定功能。

2. 可以进行更为细致的SQL优化,可以减少查询字段。

3. 缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

4.二级缓存机制不佳。

hibernate:

1. 功能强大,数据库无关性好,O/R映射能力强。

2. 有更好的二级缓存机制,可以使用第三方缓存。

3. 缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

举个形象的比喻:

mybatis:机械工具,使用方便,拿来就用,但工作还是要自己来作

hibernate:智能机器人,但研发它(学习、熟练度)的成本很高,工作都可以摆脱他了,但仅限于它能做的事。

mybatis和jdbc的区别(mybatis和hibernate的区别)

本文编辑:admin

更多文章:


网络规划设计师通过率(关于准备网络规划师,其实之前一直犹豫考CCNA还是网络规划师 之间徘徊但是最后打算还是想学习网规)

网络规划设计师通过率(关于准备网络规划师,其实之前一直犹豫考CCNA还是网络规划师 之间徘徊但是最后打算还是想学习网规)

本文目录关于准备网络规划师,其实之前一直犹豫考CCNA还是网络规划师 之间徘徊但是最后打算还是想学习网规想考软考网络规划设计师网络规划设计师培训哪里好关于准备网络规划师,其实之前一直犹豫考CCNA还是网络规划师 之间徘徊但是最后打算还是想学

2025年4月3日 21:30

netstat查看端口(如何查看端口占用情况)

netstat查看端口(如何查看端口占用情况)

本文目录如何查看端口占用情况在netstat中怎么查端口号,只有外部和内部地址,看不懂哪个是端口号netstat怎样查看端口占用端口怎么查看怎样查到电脑的网络端口如何查看端口占用情况下面一起来看看怎么使用cmd查看端口占用情况吧。1、首先进

2025年3月4日 12:50

如何剪辑出一段好的影视作品?如何剪裁视频

如何剪辑出一段好的影视作品?如何剪裁视频

本文目录如何剪辑出一段好的影视作品如何剪裁视频如何截取视频片段如何剪辑出一段好的影视作品第一剪辑影视作品对于每个人都是各有千秋的,因为每个人对电影的理解都不相同,一千部电影就有一千个哈姆雷特,所以想剪辑好影视作品,首先要看一遍作品,在根据对

2025年3月15日 21:00

frameset框架背景图片(frame怎么加背景图和背景色)

frameset框架背景图片(frame怎么加背景图和背景色)

本文目录frame怎么加背景图和背景色html框架怎么添加背景颜色java web frame框架怎么设置背景图jsp加背景图片(javascript,css)如果用frameset将窗口分成五个frame了,还能用一张大图作为整个窗口的背

2025年2月15日 05:00

norman conquest(What were the consequence of the Norman Conquest)

norman conquest(What were the consequence of the Norman Conquest)

本文目录What were the consequence of the Norman ConquestThe Norman Conquest到底是什么What were the consequence of the Norman Conq

2025年4月1日 23:10

residential是什么意思(residential什么意思)

residential是什么意思(residential什么意思)

本文目录residential什么意思residential home是什么意思请问这里的residential是什么意思下面写的那些又是什么谢谢residential什么意思,怎么读residential是什么意思residential

2025年3月10日 11:20

jfinal框架教程(使用jfinal框架验证登录时应该使用什么方法)

jfinal框架教程(使用jfinal框架验证登录时应该使用什么方法)

本文目录使用jfinal框架验证登录时应该使用什么方法jfinal框架怎么用java代码创建数据表浅谈java框架jfinal和nutz的区别JFinal框架怎么实现页面登录统计使用jfinal框架,查询功能有没有极简的设计方案jfinal

2025年2月26日 13:50

数据透视表教程(怎么插入数据透视表)

数据透视表教程(怎么插入数据透视表)

本文目录怎么插入数据透视表Excel数据透视表怎么做excel数据透视表教程透视图excel教程excel怎样做透视表数据透视图excel教程Excel2007如何插入数据透视表步骤怎么插入数据透视表Excel教程:如何制作数据透视表?简单

2025年3月8日 04:40

心理学入门书籍免费看(心理学入门必读书籍)

心理学入门书籍免费看(心理学入门必读书籍)

本文目录心理学入门必读书籍几本心理学入门书籍心理学小白该看哪些入门书籍推荐几本心理学入门书籍心理学入门必读书籍《津巴多普通心理学》《心理学与生活》《思考,快与慢》《三种心理学》《人格心理学》1.《津巴多普通心理学》——十分适合初学心理学的读

2025年3月20日 11:30

国外ip代理(那里可找到免费的国外IP代理)

国外ip代理(那里可找到免费的国外IP代理)

本文目录那里可找到免费的国外IP代理如何获得国外的代理IP怎么找国外的代理IP呢如何设置国外代理IP什么是代理ip,代理ip有什么作用那里可找到免费的国外IP代理62.201.205.226:8080@HTTP#伊拉克 Unknown62.

2025年3月15日 17:00

even though和though的区别(even though和though有什么区别)

even though和though的区别(even though和though有什么区别)

本文目录even though和though有什么区别even though和though的区别though和eventhough的区别even though 和though ,although分别什么意思怎么用even though和th

2025年3月7日 11:00

consultant动词(consultation的动词形式)

consultant动词(consultation的动词形式)

本文目录consultation的动词形式consult 的用法consultation的动词形式consultation的动词形式consult会诊;咨询;充当顾问;vt.请教;翻阅;求教于;顾及;consult 的用法consult的具

2025年4月4日 21:10

onscroll(修改了scrollTop的值,不会触发onscroll事件吗)

onscroll(修改了scrollTop的值,不会触发onscroll事件吗)

本文目录修改了scrollTop的值,不会触发onscroll事件吗js 中 手动点击按钮 实现onscroll的方法onscroll 事件为什么不执行修改了scrollTop的值,不会触发onscroll事件吗不管你是修改scrollTo

2025年4月3日 12:40

recorders(recorder 复数)

recorders(recorder 复数)

本文目录recorder 复数recorder什么意思recorder 复数recordersn. 录音机(recorder的复数)recorder n. 录音机;记录器;记录员;八孔直笛希望对你有帮助 如有疑问 请在线交谈 祝你考上理想

2025年3月23日 05:10

sql基础面试题(SQL语句面试题)

sql基础面试题(SQL语句面试题)

本文目录SQL语句面试题SQL面试题SQL语句面试题select a.user_job as “职业“,b.man_num as “男性人数“,c.woman_num as “女性人数“,count(id) as “总人数“ from us

2025年3月6日 09:20

ppt触发器设置步骤(ppt里的触发器怎么用)

ppt触发器设置步骤(ppt里的触发器怎么用)

本文目录ppt里的触发器怎么用ppt触发器怎么设置ppt里的触发器怎么用1、首先在PPT页面中插入几个图形或者其他图片,需要在图形上设置触发效果。2、然后点击其中一张图片,并选择工具栏中的“动画”选项,点击其中一种动画效果。3、然后点击动画

2025年2月19日 16:40

reduce反义词(英语“expand”的反义词是什么)

reduce反义词(英语“expand”的反义词是什么)

本文目录英语“expand”的反义词是什么Decrease和reduce有什么区别expand的近义词 freedom的近义词 export的反义词 reduce的反义词 skim的近义词increase的反义词是什么reduce的反义词d

2025年2月13日 15:00

messenger下载最新版本(怎样下载MSN messager)

messenger下载最新版本(怎样下载MSN messager)

本文目录怎样下载MSN messagermsn是什么在哪可以下载Install_Messenger最新版如何下载MSN怎样下载MSN messagerMSNMessenger是微软公司推出的即时消息软件,使用MSNMessenger可以与他

2025年4月2日 05:50

int是什么数据类型(在计算机语言中INT是什么意思)

int是什么数据类型(在计算机语言中INT是什么意思)

本文目录在计算机语言中INT是什么意思int类型是什么类型int类型是什么在计算机语言中INT是什么意思INT是数据库中一种数据类型。作为函数,INT函数指数据库中常用函数中的“向下取整函数”。在编程语言(C、C++、C#、Java等)中,

2025年2月21日 20:00

局域网直播服务器搭建(如何建立(公司)内部使用的局域网服务器)

局域网直播服务器搭建(如何建立(公司)内部使用的局域网服务器)

本文目录如何建立(公司)内部使用的局域网服务器怎么建立局域网服务器如何建立(公司)内部使用的局域网服务器建立(公司)内部使用的局域网服务器步骤如下:步骤一:设置共享为了确定局域网共享电脑的地址信息,首先需设置电脑用户名,方便查找。2.设置电

2025年4月4日 08:40

近期文章

million billion(million,billion和thousand之间应该怎么转化 要举例的那种 谢谢)
2025-04-05 17:30:01
本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索