黑豹程序员-架构师学习路线图-百科:三大框架MyBatis持久层的王者

news2024/11/25 4:41:27

文章目录

  • 1、什么是MyBatis
  • 2、Mybatis的发展历史
  • 3、比Hibernate实现差,但Mybatis却最终胜利了

在这里插入图片描述

1、什么是MyBatis

MyBatis 是一款优秀的ORM持久层框架,它支持定制化 SQL、高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将数据库中的记录映射成 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)。

2、Mybatis的发展历史

ORM:对象关系映射(Object Relational Mapping) 主要是为了在编程中,用面向对象的方式跟数据库中的表添加对应的映射关系。

在这里插入图片描述

Clinton Begin(克林顿·贝让) 在 2001 年发起的开源项目iBatis, iBatis这个词的来源是 Internet 和 abatis(障碍物) 的组合。它是基于 SQL 映射完成ResultSet结果集和Java对象的转换。

2010 年 6 月 16 号被谷歌托管, 改名为 MyBatis。

3、比Hibernate实现差,但Mybatis却最终胜利了

在这里插入图片描述

开发软件大多离不开数据库操作,而最早操作数据库只能用Java 的 JDBC 然后做一系列的封装。包括后来出现的DBUtils 等框架。
但玩过JDBC的同学都知道,它不是面向对象编程,不是围绕我们业务POJO对象编程,而是围绕数据库表的结果集操作,这显然不符合面向对象的设计思想。

一边是java面向对象,一边是数据库SQL、结果集,能否把它们形成转换呢?让开发人员统一操作的是Java对象。
于是ORM就应运而生。
ORM:对象关系映射(Object Relational Mapping) 主要是为了在编程中,用面向对象的方式跟数据库中的表添加对应的映射关系。

而这一时期的王者也因此而诞生,那最著名就是Hibernate(2001.11诞生,两年时间登顶,无限风光)。它实现了全ORM,这样开发者就可以操作对象,实现数据库表的CRUD操作。但实际开发中,简单CRUD是可以,但复杂的、特别是复杂的查询SQL又如何实现呢?

它又发明了一个HQL(Hibernate Query Language)。它可厉害了是面向对象的方式。
例如:
查询user表,
SQL:select * from tb_user;
HQL:from User;

表面上我们都成了操作对象,但在实际开发中,复杂的多表查询HQL语句太难写了,即使一个高手,也半天写不出来,即使写出来,也没有人能维护。所以这点Hibernate为面向对象而面向对象,最终就死在这点上。

相反Mybatis和它走了不同的路线,Mybatis一开始就没有抛弃SQL,而是始终留着。这样日常开发程序员都会SQL,特别复杂的SQL也不用改造直接使用。虽然因此MyBatis也被嘲笑称为半ORM框架,但实际开发反而效果更好。成为打败Hibernate的绝招。

看完大家有什么感觉?世事难料啊,Hibernate当年的风头远超Mybatis,一路把Mybatis逼近死胡同,可天意弄人,最终Hibernate底层构建基础错误,抛弃了SQL,最终快无人问津了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1123221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件外包开发的管理方法

软件开发的管理方法是确保项目按计划、高质量地交付的关键。以下是一些常见的软件开发管理方法,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 敏捷开发:敏捷开发是一种迭代和增量的开发方…

linux之应用编程回顾总结

gcc编译过程 一个c/c文件要经过预处理、编译、汇编和链接4个阶段,才能变成可执行文件 1.预处理 C/C源文件中,以“#”开头的命令被称为预处理命令,如包含命令“#include”、宏定义命令“#define”、条件编译命令“#if”、“#ifdef”等。预处理…

log4j2原理分析及漏洞复现

log4j2原理分析及漏洞复现 0x01 log4j2简介 Log4j2 是一个用于 Java 应用程序的成熟且功能强大的日志记录框架。它是 Log4j 的升级版本,相比于 Log4j,Log4j2 在性能、可靠性和灵活性方面都有显著的改进。 Log4j2 特点 高性能:Log4j2 使用异步…

ThinkPHP 3.2 常用内置函数

ThinkPHP 3.2 内置函数CDM疑问: D与M方法的相同点与不同点IAR 内置函数 C C方法是用于获取或修改,系统配置参数 语法: 获取:C(需要获得的配置参数Name) $value C(config_name);设置:C&…

常用的CSS伪类和伪元素有哪些?

除了之前提到的:hover、:nth-child(n)、::first-letter和::before之外,还有许多其他常用的CSS伪类和伪元素。以下是一些常见的示例: 常用的CSS伪类(Pseudo-classes): :active:选择处于活动(被…

python爬虫入门(一)web基础

HTTP基本要点 HTTP请求,由客户端向服务端发出,可以分为 4 部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体&#xff08…

倾斜摄影三维模型根节点合并技术方法探讨

倾斜摄影三维模型根节点合并技术方法探讨 倾斜摄影技术是一种通过无人机或其他航空器采集大量高分辨率照片,并使用特殊软件将这些照片拼接成三维模型的方法。在这个过程中,摄影机以倾斜角度拍摄照片,从而捕捉到目标物体的多个视角&#xff0c…

阿里云对象存储OSS怎么停止扣费

阿里云对象存储OSS一直扣费如何停止?如何关闭对象存储OSS?阿里云对象存储OSS没有关闭功能,如果不再使用对象存储OSS可以删除存储空间Bucket下的所有文件,详细说下阿里云对象存储OSS停止收费的方法: 阿里云对象存储OSS…

halcon 车牌识别

文章目录 素材图片预处理操作读取图片阈值处理图片仿射 识别预处理数字字母识别识别显示识别汉字预处理 字符组装汉字组装连接所有字符训练文件图像识别全部代码 素材图片 预处理操作 读取图片 * 读取图片 dev_close_window() read_image(Image,C:/Users/Augustine/Desktop/p…

iPhone怎么导出微信聊天记录?3个值得收藏的方法

随着时间的推移,微信占用的内存空间会“膨胀”得越来越大。当手机内存不足时,清理微信中的聊天记录是一个可行的方法。但是很多小伙伴觉得有些重要的聊天记录还有用,可能以后需要进行查看。 因此,他们想将一些聊天记录进行导出或…

NI9234 4 通道, ±5 V, 24 位软件可选 IEPE 和 AC/DC模拟输入模块振动测试国产替代

NI的自动化测试和测量系统将助您打破桎梏,化不可能为可能。让我们携手合作,选择最适合您的硬件、软件和服务组合,为您提供全副武装,助您成就非凡。 购买NI的产品或服务,并非只是单纯的一次性交易行为。如果您有任何疑…

【Javascript】不满意网上的Token无感知刷新方案,自己琢磨了个感觉还不错~

​前言 大家设想一下,如果有一个超级大的表单页面,用户好不容易填完了,然后点击提交,这个时候请求接口居然返回401,然后跳转到登录页。。。那用户心里肯定是一万个草泥马~~~ 所以项目里实现token无感知刷新是很有必要…

Cooking Casual -A Chef‘s Game

Cooking Casual brings out your inner crazy chef in this cool restaurant game! support email : 825407372qq.com

你真的懂Java中的equals和==吗?看完这篇文章你就知道了

和 equals() 是 Java 中两个用于比较对象是否相等的操作符和方法。它们的区别主要有以下几点: 一、类型 是一个运算符,而 equals() 是一个方法。 二、比较对象 Java数据对象类型分为两大类:基本类型和引用类型。 比较的对象可以是基本类型…

Navicat Premium 16 安装教程

一、下载地址 网址:https://pan.baidu.com/s/1jGISrlLGjAUYSIfLbm8IBw?pwd0i90 提取码:0i90 二、安装步骤 1.双击运行安装包 2.下一步 3.选择我同意,下一步 4.自定义安装路径,下一步 5.创建快捷方式,下一步 6.安装…

嵌入式学习笔记(61)位操作寄存器时的特殊作用

2.2.1寄存器操作的要求(特定位改变而不影响其他位) (1)ARM是内存与IO统一编址的,ARM中有很多内部外设,SoC中CPU通过向这些内部外设的寄存器写入一些特定的值来操控这个内部外设,进而操控硬件动作。所以可以说&#xf…

服务器中了mkp勒索病毒怎么解决,勒索病毒解密,数据恢复

自从九月份以来,云天数据恢复中心陆续接到很多企业的求助,企业的服务器数据库遭到了mkp勒索病毒的攻击,导致企业的所有业务工作中断无法开展,严重影响了企业的正常运行。经过云天数据恢复中心对其该病毒的详细了解与解密&#xff…

论坛议程 | COSCon'23 开源操作系统(O)

众多开源爱好者翘首期盼的开源盛会:第八届中国开源年会(COSCon23)将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是:“开源:川流不息、山海相映”!各位新老朋友们,欢迎到成都&a…

项目管理中的变数:从不同角度洞悉团队管理的重要性

在项目管理中,人是最重要的变数。每个成员的能力、特长、处事方式和思考方法,以及价值观和沟通方式都各不相同。因此,团队管理是项目管理过程中至关重要的环节。尽管成功的团队管理并不一定能保证项目的成功,但失败的团队管理却必…

台灯显色指数多少好?推荐显色指数优秀的护眼台灯

台灯的显色指数是其非常重要的指标,它可以表示灯光照射到物体身上,物体颜色的真实程度,一般用平均显色指数Ra来表示,Ra值越高,灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可,比较好的…