编程导航学习网站:学编程、做项目、拿 Offer!
企业高频面试题库:开始刷题,面试遇原题!
精选简历模板大全:1 分钟搞定简历!
AI 资源导航网站:获取最新 AI 黑科技!
1 对 1 模拟面试:随时随地提升面试能力
MyBatis 求职高频面试题:开始刷题
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis 最初是 Apache 的一个开源项目 iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis。2013 年 11 月迁移到 GitHub。MyBatis 是目前 Java 领域最流行的持久层框架之一,被广泛应用于各种企业级项目中。

为什么要学 MyBatis?
MyBatis 是 Java 后端开发的必备技能,几乎所有 Java Web 项目都会使用 MyBatis 或其增强版 MyBatis-Plus。相比 Hibernate 等 ORM 框架,MyBatis 更加灵活,可以编写原生 SQL,性能更好,更适合复杂的业务场景。而且 MyBatis 的学习曲线相对平缓,容易上手。
MyBatis 的核心特性包括:SQL 和 Java 代码分离、支持动态 SQL、支持缓存、支持插件扩展等。
此外,还要学习 MyBatis-Plus,它是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,提供了单表 CRUD、代码生成器、分页插件等实用功能,大大提高了开发效率。MyBatis Flex 是另一个 MyBatis 增强框架,比 MyBatis-Plus 更轻量、更灵活,也值得了解。
学习 MyBatis 建议先掌握:
关于 SQL 的详细学习,可以查看 SQL 学习路线

学完 MyBatis 后,对从事以下岗位有很大的帮助:
1)先学 SQL:MyBatis 是持久层框架,核心是 SQL。一定要先学好 SQL,熟练掌握增删改查、多表查询、子查询等。
2)理解 JDBC:MyBatis 本质上是对 JDBC 的封装。理解 JDBC 的基本使用(如何连接数据库、如何执行 SQL、如何处理结果集),可以帮助你更好地理解 MyBatis。
3)重点学 MyBatis-Plus:MyBatis-Plus 在 MyBatis 基础上提供了大量实用功能,大大提高了开发效率。实际项目中大多使用 MyBatis-Plus,要重点学习。
4)多做实战项目:MyBatis 的学习一定要结合实际项目。建议至少搭建一个简单的增删改查项目,体验 MyBatis 的完整使用流程。
5)善用 AI 工具:学习 MyBatis 时可以用 AI 工具辅助理解概念、生成 SQL。可以到鱼皮的 AI 资源大全 中找到很多不错的 AI 工具。

理解 MyBatis 的基本概念,掌握 MyBatis 的基本使用。
MyBatis 简介【必学】:
MyBatis 核心组件【必学】:
MyBatis 配置【必学】:
基本使用【必学】:
1)SqlSessionFactory 是 MyBatis 的核心对象,用于创建 SqlSession。SqlSession 是执行 SQL 的会话对象,类似于 JDBC 的 Connection。
2)#{} 和 ${} 都可以用于参数替换,但 #{} 是预编译的,可以防止 SQL 注入;${} 是字符串拼接,有 SQL 注入风险。实际开发中优先使用 #{}。
3)MyBatis 可以自动映射查询结果到 Java 对象,如果字段名和属性名不一致,需要手动配置映射关系。
映射配置是 MyBatis 的核心,通过 XML 或注解方式定义 SQL 与 Java 对象的映射关系。
掌握 MyBatis 的映射配置,能够处理复杂的查询结果。

Mapper XML【必学】:
resultMap【必学】:
注解方式【建议学】:
1)resultMap 是 MyBatis 的强大功能,可以处理复杂的查询结果映射。特别是处理一对一、一对多关联查询时,resultMap 非常有用。
2)MyBatis 支持 XML 和注解两种方式配置 SQL。简单的 SQL 可以使用注解,复杂的 SQL(如动态 SQL)建议使用 XML。
3)一对一关联使用 association,一对多关联使用 collection。要理解这两种关联的配置方法。
动态 SQL 是 MyBatis 的强大功能,可以根据条件动态生成 SQL 语句,避免大量的字符串拼接。

动态 SQL【必学】:
SQL 片段【建议学】:
1)动态 SQL 是 MyBatis 的核心特性之一,可以根据条件动态拼接 SQL。比如根据用户输入的查询条件,动态生成 where 子句。
2)where 标签可以自动去除多余的 and 或 or,set 标签可以自动去除多余的逗号,非常实用。
3)foreach 标签用于遍历集合,常用于 in 查询和批量插入。要熟练掌握 foreach 的使用。
4)sql 标签可以定义 SQL 片段,include 标签可以引用 SQL 片段,避免 SQL 重复。
掌握 MyBatis 的高级特性,如缓存、插件等。
缓存【建议学】:
分页【必学】:
插件【建议学】:
逆向工程【建议学】:
1)MyBatis 的一级缓存默认开启,在同一个 SqlSession 中,相同的查询会从缓存中获取结果。二级缓存需要手动开启,在不同 SqlSession 中共享。
2)PageHelper 是 MyBatis 最流行的分页插件,使用简单,功能强大。实际项目中几乎都使用 PageHelper 进行分页。
3)MyBatis Generator 可以根据数据库表自动生成实体类、Mapper 接口和 XML 文件,大大提高开发效率。
MyBatis-Plus 是 MyBatis 的增强工具,提供了更便捷的 CRUD 操作和代码生成功能,大幅提升开发效率。
掌握 MyBatis-Plus,能够使用 MyBatis-Plus 快速开发。
官方对 MyBatis Plus 的定义还挺形象的,基友搭配,效率翻倍~

MyBatis-Plus 基础【必学】:
条件构造器【必学】:
代码生成器【必学】:
分页插件【必学】:
其他功能【建议学】:
1)MyBatis-Plus 在 MyBatis 基础上提供了大量实用功能,最大的特点是单表 CRUD 无需编写 SQL。继承 BaseMapper 接口即可拥有增删改查功能。
2)条件构造器是 MyBatis-Plus 的核心功能,可以用 Java 代码构造复杂的查询条件,而不需要编写 SQL。LambdaQueryWrapper 可以避免硬编码字段名,更加安全。
3)MyBatis-Plus 的代码生成器可以自动生成整套代码(Entity、Mapper、Service、Controller),大大提高开发效率。实际项目中广泛使用。
4)MyBatis Flex 是另一个 MyBatis 增强框架,比 MyBatis-Plus 更轻量。可以简单了解,但不需要深入学习。
通过实际项目巩固所学知识,积累 MyBatis 项目经验。
1)从简单项目开始:搭建一个简单的增删改查项目,如学生管理系统、图书管理系统等,熟悉 MyBatis 的完整使用流程。
2)使用 MyBatis-Plus:实际项目中建议使用 MyBatis-Plus,可以大大提高开发效率。使用代码生成器生成基础代码,然后在此基础上开发业务逻辑。
3)处理复杂查询:实际项目中会遇到很多复杂查询(如多表联查、分组统计等),要学会使用 XML 编写复杂 SQL,或使用 MyBatis-Plus 的条件构造器。
4)结合 Spring Boot:MyBatis 一般和 Spring Boot 一起使用,要学习如何在 Spring Boot 中集成 MyBatis 和 MyBatis-Plus,参考官方文档就可以了。
鱼皮原创项目(强烈推荐,所有项目都使用 MyBatis/MyBatis-Plus):
新手入门:
企业级项目(选择 2-3 个):
入门级项目:
进阶级项目:
熟练掌握 MyBatis 常见面试题,准备好简历和项目经历,顺利通过面试。
1)打磨简历和项目:简历上一定要有使用 MyBatis 的项目经历。建议使用 老鱼简历 制作简历,有很多优质的模板直接拿来套。

关于如何写好简历,推荐学习鱼皮的 保姆级写简历指南。
2)多刷面试题:MyBatis 的面试题主要包括基本使用、动态 SQL、缓存、MyBatis-Plus 等。建议使用 面试鸭 刷题。

3)准备项目经历:面试时可能会问 MyBatis 在项目中的使用,如如何处理复杂查询、如何优化 SQL 等。
更多求职干货:编程导航求职干货分享
基础概念:
#{} 和 ${} 有什么区别?映射配置:
动态 SQL:
高级特性:
MyBatis-Plus:
MyBatis 是 Java 持久层框架的首选,掌握 MyBatis 是 Java 后端工程师的必备技能。MyBatis 相比 Hibernate 更加灵活,可以编写原生 SQL,更适合复杂的业务场景。而且 MyBatis 的学习曲线相对平缓,容易上手。
学习 MyBatis 要先打好 SQL 基础,理解 JDBC 的基本使用。从 MyBatis 基础开始,逐步学习映射配置、动态 SQL、高级特性。重点学习 MyBatis-Plus,它在 MyBatis 基础上提供了大量实用功能,大大提高了开发效率。
在实际项目中,MyBatis 一般和 Spring Boot 一起使用。掌握 MyBatis,结合 Spring Boot、Spring Cloud 等技术,将为你的 Java 后端开发打下坚实的基础。
希望这份学习路线能够帮助大家少走弯路,更高效地掌握 MyBatis。加油小伙伴们 💪🏻!

1)程序员学习交流圈:极客教程、实战项目、求职宝典
2)程序员面试八股文:实习/校招/社招高频考点、企业真题解析
3)程序员写简历神器:专业模板、丰富例句、直通面试
4)AI 知识资源大全:前沿技术、最新 AI 资讯、提示词大全
5)1 对 1 模拟面试:实习/校招/社招面试拿 Offer 必备