1. MyBatis概述
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
2. MyBatis结构
从整体来说mybatis可以分为三层结构

- 接口层:SqlSession 是我们平时与 MyBatis 完成交互的核心接口(包括后续整合 SpringFramework 后用到的 SqlSessionTemplate );
- 核心层:SqlSession 执行的方法,底层需要经过配置文件的解析、SQL 解析,以及执行 SQL 时的参数映射、SQL 执行、结果集映射,另外还有穿插其中的扩展插件;
- 支持层:核心层的功能实现,是基于底层的各个模块,共同协调完成的。
3. MyBatis与Hibernate的对比与关系
首先明确一点MyBatis与Hibernate没有谁干掉谁一说,他们只是侧重点不同,适用的场景不同而已
对比信息 |
MyBatis |
Hibernate |
类型 |
半自动ORM框架 |
全自动ORM框架 |
核心 |
SQL |
对象 |
SQL优化 |
容易 |
困难 |
缓存机制 |
一般 |
较好 |
数据移植性 |
差 |
优秀 |
开发效率 |
相对较低 |
效率高 |
学习成本 |
低 |
高 |
适用场景 |
比较容易出现复杂 SQL 的项目 |
复杂查询很少的项目 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?