第六课 · 6.1从 JDBC 到 MyBatis:SQL 工程化是如何发生的?

如果说 ORM 是“对象如何存在于数据库中的体系”,
那 MyBatis,就是这套体系中最靠近数据库的一条工程路线

这一篇不讲 XML 怎么写,不讲分页插件,不教 CRUD。
我们只回答一个问题:

👉 为什么 JDBC 一定会进化出 MyBatis?

一、JDBC 在干什么?——最原始的数据访问形态

在 JDBC 时代,后端访问数据库,几乎是纯手工劳动:

  • 手写 SQL
  • 手写参数绑定
  • 手写结果映射
  • 手写连接与事务管理

一个最普通的查询,至少包含四类代码:

  1. SQL 拼接
  2. 参数处理
  3. 执行与异常
  4. 对象封装

本质上,每个项目都在重复造这套轮子。

👉 JDBC 从来不是“ORM”,它只是:

数据库通信协议的 Java 封装。

二、JDBC 的真实痛点(不是“麻烦”,是“不可工程化”)

如果只是“代码多”,其实不是大问题。

真正致命的是:JDBC 让 SQL 难以工程化。

典型问题包括:

1️⃣ SQL 分散,无法管理

  • 写在代码里
  • 拼在字符串中
  • 逻辑和业务混在一起

👉 结果:无法复用、无法规范、无法审计。

2️⃣ 映射逻辑高度重复

  • ResultSet → Object
  • null 处理
  • 类型转换

👉 每个项目都在造“半吊子 ORM”。

3️⃣ 动态 SQL 不可维护

  • if 拼字符串
  • 参数错位
  • SQL 注入风险

👉 可读性、可维护性、可演进性极差。

4️⃣ 数据访问层无法沉淀为“基础设施”

你几乎不可能:

  • 给 JDBC 层统一加审计
  • 统一分页
  • 统一慢 SQL 监控
  • 统一加密/脱敏

👉 因为 JDBC 太原始。

三、MyBatis 出现:不是 ORM,而是“SQL 工程化框架”

MyBatis 的诞生目标非常清晰:

👉 把 JDBC + SQL 这件事,升级为“工程能力”。

它做的核心事情,其实只有四类:

✅ 1. SQL 结构化管理

  • XML / 注解集中管理
  • 与 Java 接口绑定
  • 形成可治理资产

✅ 2. 参数绑定标准化

  • #{}预编译
  • 类型自动转换
  • 安全防注入

✅ 3. 结果映射自动化

  • ResultMap
  • 驼峰映射
  • 嵌套结构支持

👉 JDBC 时代最大工作量,直接消失。

✅ 4. 动态 SQL 语言化

  • if / choose / foreach / trim
  • SQL 从“字符串”,变成“结构语言”

👉 这是 MyBatis 的工程价值核心之一。

四、Mapper 接口:MyBatis 最关键的抽象

MyBatis 真正改变工程形态的,不是 XML,是:

👉Mapper 接口

UserMapper.findById(Long id)

这一层的出现,意味着:

  • 数据访问层开始“接口化”
  • SQL 与业务解耦
  • Repository 模式自然形成

Mapper 的本质是:

SQL 的“函数签名”。

这一步,让数据库访问第一次具备了:

  • 可替换性
  • 可测试性
  • 可治理性

👉 这是 JDBC 永远做不到的

五、MyBatis 的本质定位(非常重要)

从系统层级看,MyBatis 从来不是完整 ORM。

它没有:

  • 对象生命周期
  • 脏检查
  • 一级缓存体系
  • 关系自动管理

它只关心:

👉一条 SQL,如何优雅地执行,并把结果翻译成对象。

所以一个非常准确的定位是:

MyBatis 是 SQL Mapper,不是 ORM 引擎。

也正因为如此:

  • 性能路径清晰
  • 行为完全可控
  • 但工程责任在开发者

六、为什么 MyBatis 天然依赖数据库能力

用 MyBatis,本质是把这件事交给你:

  • SQL 设计权
  • 索引设计权
  • Join 策略
  • 锁与事务粒度

框架不会替你兜底:

  • 不会防 N+1
  • 不会防慢 SQL
  • 不会自动批量
  • 不会理解业务关系

👉 MyBatis 放大能力,也放大短板。

所以它更适合:

  • 有 DBA / 数据库专家的团队
  • 对性能路径高度敏感的系统
  • 报表、统计、核心链路

七、MyBatis 在真实企业中的位置

在大多数中大型系统里,MyBatis 很少“单独存在”,而是:

  • 作为复杂查询层
  • 作为核心数据通道
  • 作为性能兜底方案

常见结构是:

  • JPA 管业务对象
  • MyBatis 管复杂 SQL

👉 MyBatis 往往出现在:
“系统最怕慢、最怕错、最怕炸”的地方。

八、本篇你应该真正带走的认知

这篇不要求你会用 MyBatis,但你必须形成几个判断:

  1. MyBatis 的核心价值是“SQL 工程化”
  2. 它解决的是 JDBC 的工程不可控
  3. 它不是 ORM 引擎
  4. 它要求数据库工程能力
  5. 它更像“数据库工程路线”

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

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

相关文章

Java版LeetCode热题100之最长有效括号:三种解法深度剖析与算法思维升华

Java版LeetCode热题100之最长有效括号:三种解法深度剖析与算法思维升华 本文全面解析 LeetCode 第32题「最长有效括号」,这是一道考察字符串处理、动态规划、栈应用及双指针技巧的经典难题。文章涵盖题目理解、三种主流解法(DP、栈、双指针&a…

2026申请香港优才中介机构有哪些:从政策适配到服务全面对比

2026想办理香港优才申请中介推荐哪家?寰行盛世成为众多精英的首选香港身份服务机构。 2026年,香港优才计划(优秀人才入境计划)凭借“无投资、无雇主要求、无名额限制”的核心优势,仍是内地人才赴港的首选路径。但…

客船按需定制厂家怎么选?青岛雷旺达船舶是优选

在水上旅游蓬勃发展的当下,一艘契合景区特色与运营需求的客船,是提升游客体验、拓展业务边界的核心载体。面对市场上琳琅满目的客船制造商,如何挑选兼具品质、定制化能力与售后保障的合作伙伴?以下结合客船按需定制…

学长亲荐2026TOP10AI论文工具:本科生毕业论文必备测评

学长亲荐2026TOP10AI论文工具:本科生毕业论文必备测评 2026年学术AI写作工具测评:为何值得一看? 随着人工智能技术的不断进步,AI论文工具在学术领域的应用越来越广泛。对于本科生而言,撰写毕业论文不仅是学业的重要环节…

wsl2使用windows代理

1.查看wsl和windows版本号: wsl --version WSL 版本: 2.5.10.0 内核版本: 6.6.87.2-1 WSLg 版本: 1.0.66 MSRDC 版本: 1.2.6074 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.26100.1-240331-1435.ge-release …

第六课:ORM 是什么?——从 JDBC 到 MyBatis / JPA 的一次认知升级

很多人学后端,会把 MyBatis / JPA 当成“查数据库的工具”。 但真正做过系统的人都会发现: 👉 数据库访问,从来不是“查数据”,而是一整套对象持久化体系。 这一篇不讲 API、不讲配置、不写教程。 只做一件事&#xff…

Spring 新声明式 HTTP 客户端:HTTP Interface + RestClient,把“调用外部 API”写成接口

1. 核心概念:HTTP Service Clients(HTTP Interface) 它的本质是两件事:(Home) 用接口定义“我要调用的 HTTP API”(方法上标注 GetExchange 等)用 HttpServiceProxyFactory 基于底层 HTTP 客户端&#xf…

java_ssm10二手汽车销售系统n7v1m

目录 具体实现截图系统概述技术架构核心功能模块系统特色应用价值 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 系统概述 Java_SSM10二手汽车销售系统是基于SSM(SpringSpringMVC…

2026全国靠谱拍摄剪辑培训机构哪个比较好

作为一个从零基础转行做短视频行业的过来人,真的太懂大家想学拍摄剪辑,却被五花八门的教学机构搞懵的心情了!现在短视频、直播火得一塌糊涂,拍摄剪辑早就不是“兴趣爱好”,而是能变现、能转行的硬技能——我查过《…

Excel数据检测大师:ISBLANK与ISLOGICAL函数实战指南

如何从杂乱的数据中快速识别空白项和逻辑值?这两个函数能帮你建立数据质量检查的第一道防线! 一、核心函数解析:数据质量的守门员 1. ISBLANK函数 - 空白检测专家 ISBLANK(单元格引用) 功能:判断指定单元格是否为空。如果是真正空…

java_ssm11办公电子政务管理系统 上下班考勤打卡系统

目录 具体实现截图办公电子政务管理系统与上下班考勤打卡系统摘要 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 办公电子政务管理系统与上下班考勤打卡系统摘要 办公电子政务管理系统是基于…

​工信部发布人形机器人标准化指南,博银合创落地工业具身智能实验室,Meta发布V-JEPA 2世界模型,博世与OpenAI深化合作

工信部发布人形机器人标准化体系指南,推动产业规模化发展 国新办发布会上,工信部明确宣布将正式印发《人形机器人与具身智能综合标准化体系建设指南》,同步加大国家人工智能产业基金扶持力度,推进开源社区建设,破解行…

2026年西安发泡混凝土厂家靠谱推荐陕西曲益存建筑工程有限公司-深耕发泡混凝土领域

发泡混凝土是一种通过在水泥浆料中引入大量均匀、封闭的气泡而制成的轻质多孔材料。它结合了混凝土的耐久性和泡沫的轻质性,在现代建筑和工程中应用广泛。一、西安发泡混凝土厂家陕西曲益存建筑工程有限公司top实力解…

让机器人拥有本能反应!清华开源:一套代码实现跑酷、野外徒步两大能力

清华大学交叉信息研究院与上海期智研究院联合推出的Project-Instinct框架,给出了一个新答案。 如何让机器人同时具备“本能反应”与复杂运动能力? 清华大学交叉信息研究院与上海期智研究院联合推出的Project-Instinct框架,给出了一个新答案…

java_ssm2 甜品蛋糕店商城销售管理系统_7sp39

目录 具体实现截图系统概述技术架构核心功能模块创新与优化应用价值 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 系统概述 Java_SSM2甜品蛋糕店商城销售管理系统是一款基于SSM(…

6G基站与终端协作感知关键技术报告:基站与终端协作,解锁高精度感知一体化未来

摘要:本报告基于3GPP 6G标准化进展,揭秘基站与终端协作感知的核心逻辑:通过“基站广覆盖终端泛在分布”优势互补,实现高精度、全场景感知,为通信行业从业者、技术研发人员、政策制定者提供全景式技术指南。6G 时代的协…

马斯克下场抢人!xAI组建「人才狙击队」,极客版HR年薪168万

xAI认为,想从常规人才市场招真正的顶尖人才,没戏。还得靠熟人推荐、线下活动、竞赛选拔、特定线上社区,以及各种更具创造性的渠道。马斯克要亲自下场抢人了。最新消息,xAI正组建一支「AI人才狙击队」,直接向马斯克汇报…

回收微信立减金前必读清单,避开陷阱,安全操作指南

信立减金是日常消费的“隐形福利”,可不少人因闲置或额度溢出想将其回收变现。但微信立减金回收市场良莠不齐,隐私泄露、资金损失等风险暗藏。这份必读清单,助你安全完成回收。 一、确认关键信息,避免资源浪费 回收…

java_ssm3旅行日记旅行攻略分享系统

目录 具体实现截图基于SSM框架的旅行日记与攻略分享系统设计与实现 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 基于SSM框架的旅行日记与攻略分享系统设计与实现 该系统采用Java语言开发&a…

Java版LeetCode热题100之不同路径:从动态规划到组合数学的全面解析

Java版LeetCode热题100之不同路径:从动态规划到组合数学的全面解析 本文深入剖析 LeetCode 第62题「不同路径」,这是一道经典的网格路径计数问题。文章涵盖题目理解、动态规划(二维与一维)、组合数学三种解法、代码实现、复杂度分…