Mybatis相关面试题

一、什么是 Mybatis?
1、Mybatis 是一 个 半 ORM( 对象 关 系 映 射 )框架 ,它内 部 封 装 了 JDBC,开发时只需 要 关 注 SQL 语句 本 身 ,不 需 要 花 费 精 力 去 处 理 加 载 驱 动 、 创 建 连 接 、 创 建statement 等繁 杂 的 过 程 。程序 员 直 接 编 写 原 生 态 sql,可以 严 格 控 制 sql 执行 性能, 灵 活 度 高 。
2、 MyBatis 可以 使 用 XML 或注 解 来 配 置 和 映 射 原 生 信 息 , 将 POJO 映射 成 数据库中 的记录 , 避 免 了 几 乎 所 有 的 JDBC 代码 和 手 动 设 置 参 数 以 及 获 取 结 果 集 。
3、通 过 xml 文件 或 注 解 的 方 式 将 要 执 行 的 各 种 statement 配置 起 来 , 并 通 过java 对象 和 statement 中 sql 的动 态 参 数 进 行 映 射 生 成 最 终 执 行 的 sql 语句 ,最后由 mybatis 框架 执 行 sql 并将 结 果 映 射 为 java 对象 并 返 回 。 ( 从 执 行 sql 到返回 result 的过 程 ) 。

二、Mybaits 的优点:
1、基于 SQL 语句 编 程 ,相当 灵 活 ,不会 对 应 用 程 序 或 者 数 据 库 的 现 有 设 计 造 成 任
何影 响 ,SQL 写在 XML 里 ,解除 sql 与程 序 代 码 的 耦 合 ,便于 统 一 管 理 ;提供 XML
标签 , 支 持 编 写 动 态 SQL 语句 , 并 可 重 用 。
2、与 JDBC 相比 ,减少 了 50%以上 的 代 码 量 ,消除 了 JDBC 大量 冗 余 的 代 码 ,不需要 手 动 开 关 连 接 ;
3、很好 的 与 各 种 数 据 库 兼 容( 因为 MyBatis 使用 JDBC 来连 接 数 据 库 ,所以 只 要JDBC 支持 的 数 据 库 MyBatis 都支 持 ) 。
4、能 够 与 Spring 很好 的 集 成 ;
5、提 供 映 射 标 签 , 支 持 对 象 与 数 据 库 的 ORM 字段 关 系 映 射 ; 提 供 对 象 关 系 映 射标签 , 支 持 对 象 关 系 组 件 维 护 。

三、MyBatis 框架的缺点:
1、 SQL 语句 的 编 写 工 作 量 较 大 , 尤 其 当 字 段 多 、 关 联 表 多 时 , 对 开 发 人 员 编 写SQL 语句 的 功 底 有 一 定 要 求 。
2、 SQL 语句 依 赖 于 数 据 库 , 导 致 数 据 库 移 植 性 差 , 不 能 随 意 更 换 数 据 库 。

四、MyBatis 框架适用场合:
1、 MyBatis 专注 于 SQL 本身 , 是 一 个 足 够 灵 活 的 DAO 层解 决 方 案 。
2、对性 能 的 要 求 很 高 ,或者 需 求 变 化 较 多 的 项 目 ,如互 联 网 项 目 ,MyBatis 将是不错 的 选 择 。

五、MyBatis 与 Hibernate 有哪些不同?
1、Mybatis 和 hibernate 不同 ,它不 完 全 是 一 个 ORM 框架 ,因为 MyBatis 需要程序 员 自 己 编 写 Sql 语句 。
2、 Mybatis 直接 编 写 原 生 态 sql,可 以 严 格 控 制 sql 执行 性 能 , 灵 活 度 高 , 非 常适合 对 关 系 数 据 模 型 要 求 不 高 的 软 件 开 发 , 因 为 这 类 软 件 需 求 变 化 频 繁 , 一 但 需求变 化 要 求 迅 速 输 出 成 果 。 但 是 灵 活 的 前 提 是 mybatis 无法 做 到 数 据 库 无 关 性 ,
如果 需 要 实 现 支 持 多 种 数 据 库 的 软 件 ,则需 要 自 定 义 多 套 sql 映射 文 件 ,工作 量 大 。
3、 Hibernate 对象 /关系 映 射 能 力 强 , 数 据 库 无 关 性 好 , 对 于 关 系 模 型 要 求 高 的软件 , 如 果 用 hibernate 开发 可 以 节 省 很 多 代 码 , 提 高 效 率 。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AKE 安全模型:CK, CK+, eCK

参考文献: [BCK98] Mihir Bellare, Ran Canetti, Hugo Krawczyk. A Modular Approach to the Design and Analysis of Authentication and Key Exchange Protocols (Extended Abstract). STOC 1998: 419-428.[CK01] Ran Canetti, Hugo Krawczyk. Analysis of Key-E…

vue2面试题|[2024-12-5]

开题答辩终于结束了,又要开始我的前端面试学习啦!!! 1.v-model双向绑定原理 class Vue{constructor(options){this.$options optionsthis.$watchEvent {}if(typeof options.beforeCreate function){options.beforeCreate.bind…

AI Agent 的崛起与未来:专业模型时代的新趋势20241209

AI Agent 的崛起与未来:专业模型时代的新趋势 引言 📋 在人工智能飞速发展的今天,AI Agent 正在从科幻走向现实。尽管专业大模型在垂直领域的表现令人惊艳,AI Agent 的整合能力和协作潜力却赋予了它独特的价值。本文将回顾 AI A…

【opencv入门教程】9.视频加载

文章选自: 一、VideoCapture类 用于从视频文件、图像序列或摄像头捕获视频的类。函数:CV_WRAP VideoCapture();brief 默认构造函数CV_WRAP explicit VideoCapture(const String& filename, int apiPreference CAP_ANY);brief 使用 API 首选项打开…

【MySQL — 数据库基础】深入解析MySQL数据库操作:创建、使用、删除及字符集管理

目录 1. 数据库的操作 1.1 显示当前的数据库 1.2 创建数据库 1.3 使用数据库 1.4 删除数据库 1.5 删除磁盘文件的原理 1.6 退出客户端 文章介绍 本文详细介绍了数据库的基本操作,包括显示当前数据库、创建数据库、使用数据库、删除…

k8s 优雅监控jvm及dump heap的方案探讨

背景 k8s cluster 的健康检测失败会主动重启pod,而大部份情况下健康检测失败都是由full gc引起的。往往发生重启时已经没有条件dump heap排查full gc的原因。 如何监控 为了避免因健康检测失败而导致的pod重启,我们需要实施有效的监控策略,这…

搭建Discuz论坛

lnmp l:linux操作系统 n:nginx前端页面 m:mysql数据库,账号密码等等都是保存在这个数据库里面 p:php------nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态…

SpringBoot3整合SpringMVC

一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…

移动应用开发课程第六次实验:为实验2添加登陆页面,用SQList存储好友基本信息

1、在Android Studio中&#xff0c;请在第二次实验成果的基础上完成以下实验要求。 向右滑动 请添加登录页面。在登录页面中&#xff0c;如果用户输入的用户名和密码正确&#xff0c;则跳转至如上图所示的好友列表&#xff0c;并记录用户的登录信息&#xff0c;在用户第一次登…

杨振宁大学物理视频中黄色的字,c#写程序去掉

先看一下效果&#xff1a;&#xff08;还有改进的余地&#xff09; 我的方法是笨方法&#xff0c;也比较刻板。 1&#xff0c;首先想到&#xff0c;把屏幕打印下来。c#提供了这样一个函数&#xff1a; Bitmap bmp new Bitmap(640, 480, PixelFormat.Format32bppArgb); // 创…

MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作

目录 第一章 以问题导入的方式&#xff0c;深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…

数字图像处理(15):图像平移

&#xff08;1&#xff09;图像平移的基本原理&#xff1a;计算每个像素点的移动向量&#xff0c;并将这些像素按照指定的方向和距离进行移动。 &#xff08;2&#xff09;平移向量包括水平和垂直分量&#xff0c;可以表示为&#xff08;dx&#xff0c;dy&#xff09;&#xff…

海外的bug-hunters,不一样的403bypass

一种绕过403的新技术&#xff0c;跟大家分享一下。研究HTTP协议已经有一段时间了。发现HTTP协议的1.0版本可以绕过403。于是开始对lyncdiscover.microsoft.com域做FUZZ并且发现了几个403Forbidden的文件。 &#xff08;访问fsip.svc为403&#xff09; 在经过尝试后&#xff0…

WPF Prism 01-BootstrapperShell

Prism介绍 Prism 是一个用于在 WPF、.NET MAUI、Uno 平台和 Xamarin Forms 中构建松耦合、可维护和可测试的 XAML 应用程序的框架。每个平台都有单独的发布版本&#xff0c;并且这些版本将在独立的开发时间线上进行开发。Prism 提供了一组设计模式的实现&#xff0c;这些模式有…

计算机网络-Wireshark探索ARP

使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…

Sketch中文版下载安装:一站式设计平台指南

Sketch&#xff0c;这个以轻量和高效著称的矢量设计工具&#xff0c;已经在全球设计领域创造了许多令人惊叹的成果。它以其矢量编辑、控件和样式等功能而闻名。而其中文版本——一站式设计平台“在线设计工具”&#xff0c;在功能全面性、中文操作环境、简洁界面以及设备兼容性…

机器学习决策树原理详解

一、引言 在当今蓬勃发展的人工智能与大数据领域&#xff0c;大模型正以前所未有的影响力改变着众多行业的格局。而决策树作为机器学习算法家族中的经典成员&#xff0c;以其简洁直观的特点和广泛的适用性&#xff0c;不仅能独立解决诸多实际问题&#xff0c;更是诸多先进大模…

Kafka怎么发送JAVA对象并在消费者端解析出JAVA对象--示例

1、在pom.xml中加入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-stream-kafka</artifactId><version>3.1.6</version></dependency> 2、配置application.yml 加入Kafk…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

大数据-245 离线数仓 - 电商分析 缓慢变化维 与 拉链表 SCD Slowly Changing Dimensions

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…