首页/ 学科题库/ Mytatis

Mytatis

BACK

MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs映射成数据库中的记录。

107篇教程
23个专题
26套试卷
3级知识点
点击任意节点选择「前往 教程 / 专题 / 试卷」;点击「分组」还可展开该组知识点 学科 级别 分组 知识点
前往
入门级

打好基础

7 组 · 29 篇
进阶级

核心能力

9 组 · 43 篇

动态 SQL

8 篇
教程文章

if 条件判断

if 标签根据 test 属性中的 OGNL 表达式决定是否包含 SQL 片段,是动态 SQL 最基础的条件判断标签,广泛用于可选查询条件、字段过滤等场景。

6 分钟阅读
教程文章

choose-when-otherwise 分支

choose-when-otherwise 提供类似 Java switch 的多分支选择逻辑,按顺序匹配 when 条件,仅执行第一个为 true 的分支,otherwise 作为默认兜底。

6 分钟阅读
教程文章

where 智能条件

where 标签自动处理 WHERE 关键字的添加与移除,智能去除首个多余的 AND 或 OR 前缀,简化动态条件拼接,避免手动处理边界情况。

6 分钟阅读
教程文章

set 更新字段

set 标签智能处理 UPDATE 语句中的 SET 关键字和多余逗号,支持选择性字段更新,避免全量覆盖,提升更新操作的灵活性和安全性。

6 分钟阅读
教程文章

foreach 循环遍历

foreach 标签用于遍历集合、数组、Map 等数据结构,通过 collection、item、open、close、separator 等属性动态生成 IN 查询、批量 INSERT、多条件拼接等 SQL 片段。

8 分钟阅读
教程文章

trim 自定义裁剪

trim 标签提供灵活的 SQL 前缀/后缀控制能力,通过 prefix、suffix、prefixOverrides、suffixOverrides 四个属性实现复杂动态 SQL 场景的精确裁剪。

6 分钟阅读
教程文章

sql 片段复用

通过 `<sql>` 标签提取公共 SQL 片段,配合 `<include>` 标签实现列定义、WHERE 条件、JOIN 语句的跨 Statement 复用,减少冗余和维护成本。

6 分钟阅读
教程文章

bind 变量绑定

bind 标签在动态 SQL 中创建新变量,支持 OGNL 表达式拼接,常用于模糊查询、大小写转换、兼容性适配等场景,减少数据库函数依赖。

6 分钟阅读
专家级

高阶实战

7 组 · 35 篇

MyBatis 概述与环境搭建专题

MyBatis 概述与环境搭建专题 专题说明 本专题引导初学者认识 MyBatis 框架,了解其核心设计理念,并掌握从零搭建开发环境到运行第一个 MyBatis 程序的完整流程。 学习目标 理解 MyBatis 框架的定位与核心优势 掌握 MyBatis 与 Hibernate 等 ORM 框架的区别 熟练使用 Maven 配置 MyBatis 开发环境 掌握 mybatis-config.xml 核心配置文件的创建 能够独立编写第一个 MyBatis 查询程序 理解 SqlSessionFactory 与 SqlSession 的作用与生命周期 学习内容 本专题涵盖以下知识点: MyBatis 框架简介:半自动化 ORM 设计理念 MyBatis 与 Hibernate 的对比分析 开发环境搭建:Maven 依赖配置、数据库驱动引入 Spring Boot 集成:mybatis-spring-boot-starter 使用 第一个 MyBatis 程序:核心配置文件、Mapper XML、SqlSessionFactory 构建 SqlSession 的正确使用与资源管理 学习建议 先理解&quot;半自动化&quot;的设计理念,这是区别于 Hibernate 的核心特征 环境搭建时注意依赖版本的一致性 第一个程序建议完整手写,理解每个组件的作用 SqlSession 不是线程安全的,务必注意每个线程创建自己的实例并及时关闭

14 题 查看专题 →

SQL 映射文件基础专题

SQL 映射文件基础专题 专题说明 本专题讲解 MyBatis 中最重要的组成部分——SQL 映射文件。掌握映射文件的结构和四种 SQL 语句标签的使用,是使用 MyBatis 的基础技能。 学习目标 理解 mapper 根元素及其 namespace 属性的作用 掌握 select、insert、update、delete 四种语句标签的使用 理解各语句标签的核心属性(id、parameterType、resultType 等) 能够编写基本的增删改查 SQL 映射 了解动态 SQL 中 &lt;set&gt; 和 &lt;if&gt; 标签的组合使用 学习内容 本专题涵盖以下知识点: mapper 根元素结构与 namespace 绑定机制 &lt;select&gt; 查询语句:属性与返回值映射 &lt;insert&gt; 插入语句:主键回填机制 &lt;update&gt; 更新语句:动态更新实现 &lt;delete&gt; 删除语句:条件删除 动态 SQL 基础:&lt;set&gt; 与 &lt;if&gt; 标签 学习建议 namespace 是理解 MyBatis 接口绑定的关键,务必重点理解 四种语句标签结构相似,先掌握 select,再类推其他 动态 SQL 是进阶内容,本专题只介绍最基础的 &lt;set&gt; + &lt;if&gt; 组合

12 题 查看专题 →

TypeHandler 自定义类型处理器专题

TypeHandler 自定义类型处理器专题 专题说明 本专题精选13道代表性题目,系统讲解MyBatis的TypeHandler机制,涵盖TypeHandler接口定义、BaseTypeHandler抽象类、内置TypeHandler、枚举类型处理、JSON类型处理、自定义TypeHandler开发与注册等核心内容,是MyBatis进阶学习的重点内容。 学习目标 掌握TypeHandler接口的4个核心方法及其作用 理解BaseTypeHandler的简化开发方式 熟悉MyBatis内置TypeHandler的使用场景 掌握枚举类型的两种处理方式 能够自定义TypeHandler处理JSON等复杂类型 掌握TypeHandler的三种注册方式 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 TypeHandler 基础 7题 TypeHandler接口、BaseTypeHandler、内置处理器、JDBC类型映射 自定义 TypeHandler 6题 自定义开发、枚举处理、JSON处理、注册配置、优先级规则 学习建议 先阅读完整指南文章,建立整体认知 理解TypeHandler在SQL执行流程中的位置(参数设置与结果映射) 重点掌握自定义TypeHandler的开发步骤和注册方式 注意枚举处理的两种方式差异 多动手实践,尝试编写处理JSON、日期等类型的TypeHandler

13 题 查看专题 →

与 Spring 集成专题

与 Spring 集成专题 专题说明 本专题精选14道代表性题目,系统讲解MyBatis与Spring框架的集成方案,涵盖SqlSessionFactoryBean、SqlSessionTemplate、Mapper接口扫描、声明式事务管理、多数据源配置等核心内容,是企业级MyBatis开发的必备知识。 学习目标 掌握SqlSessionFactoryBean的配置方式与核心属性 理解SqlSessionTemplate的线程安全机制 掌握@MapperScan注解的使用方法与属性配置 熟悉Spring声明式事务在MyBatis中的应用 了解多数据源配置与动态数据源路由方案 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 Spring 集成 9题 SqlSessionFactoryBean、SqlSessionTemplate、Mapper扫描、事务管理 MyBatis-Spring 5题 自动配置、多数据源、AbstractRoutingDataSource、动态切换 学习建议 先阅读完整指南文章,理解Spring-MyBatis集成的整体架构 重点掌握@MapperScan和SqlSessionFactoryBean的配置方式 理解事务管理器的选择与配置 多数据源部分是进阶内容,结合动态数据源路由理解其原理 建议在Spring Boot项目中动手实践配置

14 题 查看专题 →

动态 SQL专题

动态 SQL专题 专题说明 本专题精选14道代表性题目,系统讲解MyBatis的动态SQL功能,涵盖if条件判断、choose/when/otherwise分支选择、foreach循环遍历、where/set智能裁剪、trim自定义、bind变量绑定等核心标签,是MyBatis最强大且最常用的特性之一。 学习目标 掌握if标签的条件判断与OGNL表达式语法 理解choose/when/otherwise的互斥分支机制 熟练使用foreach遍历List、数组和Map参数 掌握where/set标签的智能裁剪功能 理解trim标签与where/set的等价关系 能够综合运用动态SQL标签构建复杂查询 学习内容 本专题涵盖以下5个知识点: 知识点 题目数 核心内容 if 条件判断 2题 test属性、OGNL表达式、字符串比较 choose/when/otherwise 2题 互斥分支、索引优化 foreach 循环遍历 3题 collection属性、分隔符、Map遍历 where/set 智能裁剪 3题 自动添加关键字、去除多余AND/逗号 trim/bind 与其他 4题 trim等价关系、bind变量绑定、综合应用 学习建议 先阅读完整指南文章,理解动态SQL的整体设计思想 重点掌握if和foreach的使用,它们是动态SQL中最常用的标签 理解trim标签是where/set的底层实现,有助于灵活定制 注意OGNL表达式中字符串比较需要使用单引号 多动手实践,尝试编写复杂的多条件查询SQL

14 题 查看专题 →

参数传递与结果映射专题

参数传递与结果映射专题 专题说明 本专题深入讲解 MyBatis 的参数传递与结果映射机制。参数传递决定了 SQL 如何接收输入数据,结果映射决定了查询结果如何转换为 Java 对象,这是 MyBatis 数据交互的两个关键环节。 学习目标 掌握 parameterType 的使用场景与配置方式 理解单参数与多参数传递的区别 掌握 @Param 注解在多参数场景下的使用 熟练使用 resultType 进行自动结果映射 掌握 resultMap 进行复杂结果映射的配置 理解驼峰转换(mapUnderscoreToCamelCase)的作用与配置 学习内容 本专题涵盖以下知识点: 参数传递:单参数、多参数、@Param 注解、Map 参数 resultType 自动映射:基本类型、JavaBean、List resultMap 手动映射:&lt;result&gt;、&lt;id&gt;、&lt;association&gt;、&lt;collection&gt; 驼峰命名转换与自动映射规则 何时使用 resultType 何时使用 resultMap 学习建议 单参数传递是基础,先理解 MyBatis 的参数处理机制 多参数传递推荐使用 @Param 注解,提高代码可读性 resultType 适用于列名与属性名一致的场景,resultMap 适用于复杂映射场景 建议开启驼峰转换,减少手动映射的工作量

14 题 查看专题 →

基本 CRUD 实战专题

基本 CRUD 实战专题 专题说明 本专题通过实际案例演示 MyBatis 中增删改查(CRUD)操作的完整实现流程。在掌握了 SQL 映射文件和参数映射的基础上,本专题将这些知识点整合,完成一个完整的 CRUD 实战。 学习目标 熟练使用 &lt;select&gt; 完成各类查询操作 熟练使用 &lt;insert&gt; 实现数据插入与主键回填 熟练使用 &lt;update&gt; 实现数据更新 熟练使用 &lt;delete&gt; 实现数据删除 掌握 MyBatis 事务控制的基本流程 能够在实际业务场景中组合使用 CRUD 操作 学习内容 本专题涵盖以下知识点: 单表查询操作与 &lt;select&gt; 标签属性 插入操作与返回值处理 更新操作与影响行数判断 删除操作与条件控制 事务控制:commit、rollback、close 的标准流程 CRUD 综合应用:典型业务场景下的操作组合 学习建议 本专题是前面知识的综合运用,建议先掌握 SQL 映射和参数映射基础 事务控制是重点,务必理解 try-catch-finally 的标准写法 注意 insert/update/delete 返回的是受影响行数,不是 boolean

8 题 查看专题 →

多租户与数据权限专题

多租户与数据权限专题 专题说明 本专题系统讲解MyBatis多租户架构设计与数据权限管控的完整解决方案,涵盖三种数据库方案对比、拦截器实现、动态数据源切换、事务场景下的数据源切换陷阱以及ThreadLocal生命周期管理。 学习目标 理解多租户三种数据库方案的优缺点及适用场景 掌握基于StatementHandler拦截器的租户隔离实现 学会使用JSqlParser进行SQL AST解析与重写 掌握动态数据源切换与Spring事务的交互机制 理解ThreadLocal在多租户场景下的安全清理策略 学习内容 多租户架构:独立数据库、独立Schema、共享Schema 数据权限拦截器:StatementHandler拦截、JSqlParser AST重写 动态数据源切换:AbstractRoutingDataSource、ThreadLocal上下文 事务与数据源切换的陷阱及解决方案 租户隔离策略:特权角色处理、ThreadLocal生命周期管理 学习建议 多租户是SaaS架构的核心问题,务必理解三种方案的权衡取舍。数据权限拦截器涉及JSqlParser、BoundSql等底层知识,建议结合源码调试理解。事务与数据源切换的交互是面试高频考点,也是生产环境最常见的坑。

8 题 查看专题 →

存储过程与高级查询专题

存储过程与高级查询专题 专题说明 本专题精选9道代表性题目,系统讲解MyBatis调用存储过程的方法、参数处理、游标结果集映射、复杂查询封装等高级查询技术。 学习目标 掌握存储过程调用的基本语法与statementType配置 理解IN、OUT、INOUT参数的处理方式 学会处理存储过程返回的游标结果集 掌握复杂查询的封装与嵌套查询技巧 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 存储过程调用 5题 statementType=CALLABLE、IN/OUT参数、游标处理 高级查询封装 4题 嵌套查询、复杂结果映射、多结果集处理 学习建议 存储过程调用必须使用statementType=&quot;CALLABLE&quot; 理解JDBC标准语法{CALL ...}的使用 游标结果需要配置jdbcType=CURSOR和javaType=java.sql.ResultSet 注意@Results注解不能用于游标参数映射

9 题 查看专题 →

性能调优实战专题

性能调优实战专题 专题说明 本专题系统讲解MyBatis性能调优的完整体系,涵盖批量操作优化、连接池调优、缓存策略、执行计划分析、慢查询定位与优化等核心内容,覆盖从发现、分析到优化的完整调优流程。 学习目标 掌握ExecutorType.BATCH批量操作与分批提交策略 理解HikariCP连接池核心参数调优及连接泄漏诊断 深入理解缓存穿透、击穿、雪崩的区别与解决方案 学会使用EXPLAIN分析SQL执行计划并识别性能问题 掌握慢查询定位与优化的完整流程 学习内容 批量操作优化:BATCH执行器、分批提交、一级缓存清理 连接池调优:HikariCP参数、连接泄漏诊断、合理连接数 缓存策略优化:二级缓存局限性、穿透/击穿/雪崩 执行计划分析:EXPLAIN核心字段解读、性能警告识别 慢查询定位与优化:慢查询日志收集、EXPLAIN分析、JOIN优化 学习建议 性能调优是生产环境必备技能,建议结合EXPLAIN工具实际分析SQL。连接池和批量操作优化是面试高频考点,缓存问题是架构设计必考题。慢查询优化需要建立完整的监控-分析-优化闭环。

12 题 查看专题 →

批量操作与性能优化专题

批量操作与性能优化专题 专题说明 本专题精选10道代表性题目,系统讲解MyBatis的批量操作与性能优化方案,涵盖ExecutorType三种执行器、ExecutorType.BATCH批量执行、SQL语句优化、fetchSize游标配置、日志配置与性能分析等核心内容,是MyBatis项目性能调优的必备知识。 学习目标 理解三种ExecutorType的区别与适用场景 掌握ExecutorType.BATCH的使用方式与注意事项 熟悉SQL语句优化的基本原则与常见技巧 了解批量操作中的内存控制与分段提交策略 掌握MyBatis日志配置与性能分析方法 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 批量操作 5题 ExecutorType、BATCH模式、flushStatements、批量配置 性能优化 5题 SQL优化、索引利用、日志配置、日志工厂 学习建议 先阅读完整指南文章,理解批量操作的整体流程 重点掌握ExecutorType.BATCH的使用方式,注意flushStatements的调用时机 理解批量INSERT在事务和日志方面的影响 学习SQL优化的通用原则,不仅限于MyBatis 建议在测试环境中实践BATCH模式的性能对比

10 题 查看专题 →

接口绑定与动态代理专题

接口绑定与动态代理专题 专题说明 本专题讲解 MyBatis 最核心的特性之一——Mapper 接口绑定与动态代理机制。通过本专题,你将理解为什么只需定义接口而无需编写实现类,MyBatis 就能执行 SQL 并返回结果。 学习目标 理解 MyBatis 接口绑定的核心原理 掌握 JDK 动态代理在 MyBatis 中的应用 理解 Mapper 接口方法名与 XML 中 SQL id 的对应关系 掌握 getMapper 方法的底层调用链 能够排查接口绑定失败的常见问题 学习内容 本专题涵盖以下知识点: 接口绑定原理:为什么只需要接口 JDK 动态代理 + XML 解析的绑定机制 Mapper 接口与 XML 的对应规则 SqlSession.getMapper() 的底层实现 MapperRegistry、MapperProxyFactory、MapperMethod 的作用 接口绑定的常见错误与排查 学习建议 先理解&quot;为什么不需要编写实现类&quot;,这是理解动态代理的前提 重点理解 namespace + id 如何对应到接口方法 getMapper 的调用链是进阶知识,理解后可以更好地排查问题

9 题 查看专题 →

插件开发高级应用专题

插件开发高级应用专题 专题说明 本专题系统讲解MyBatis插件机制的核心原理与高级应用,涵盖JDK动态代理构建的代理链机制、多插件执行顺序、分页插件深度定制、数据脱敏插件、SQL审计日志插件等完整实战场景。 学习目标 理解MyBatis插件的JDK动态代理机制与代理链构建原理 掌握多插件执行顺序与invocation.proceed()的短路机制 学会开发支持多数据库方言的分页插件 掌握数据脱敏插件在ResultSetHandler和TypeHandler层面的实现 理解SQL审计日志插件的异步写入与敏感信息处理 学习内容 插件代理链原理:Plugin.wrap()、JDK动态代理、责任链模式 多插件执行顺序:XML配置顺序与intercept调用顺序的关系 分页插件深度定制:Executor拦截、SQL改写、多数据库方言 数据脱敏插件:@Sensitive注解、ResultSetHandler拦截、TypeHandler实现 SQL审计日志插件:异步写入、敏感信息脱敏、批量写入 学习建议 MyBatis插件机制是框架的核心扩展点,建议结合源码理解Plugin.wrap()的代理链构建过程。分页插件是实战中最常见的自定义插件类型,数据脱敏和审计日志插件是生产环境的典型需求。

10 题 查看专题 →

插件机制专题

插件机制专题 专题说明 本专题精选10道代表性题目,系统讲解MyBatis的插件机制,涵盖插件拦截原理(JDK动态代理)、四大核心拦截对象、@Intercepts与@Signature注解、Interceptor接口三方法、PageHelper分页插件原理与实现、自定义插件开发等核心内容,是深入理解MyBatis扩展机制的进阶知识。 学习目标 理解MyBatis插件底层基于JDK动态代理的拦截机制 掌握四大核心拦截对象(Executor、ParameterHandler、ResultSetHandler、StatementHandler) 熟练使用@Intercepts和@Signature注解声明拦截目标 掌握Interceptor接口中intercept、plugin、setProperties三个方法的作用 理解PageHelper分页插件的实现原理 能够开发自定义插件实现SQL改写、性能监控等功能 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 插件原理 4题 JDK动态代理、四大拦截对象、拦截链、Plugin.wrap 自定义插件 6题 Interceptor接口、@Intercepts注解、分页插件、SQL改写 学习建议 先阅读完整指南文章,理解插件机制的整体架构 重点理解JDK动态代理在插件中的应用 掌握四大拦截对象各自的作用时机 分页插件是插件的经典应用案例,建议深入理解其ThreadLocal传递参数的设计 尝试实现一个简单的SQL日志或性能监控插件

10 题 查看专题 →

日志配置与调试专题

日志配置与调试专题 专题说明 本专题讲解 MyBatis 的日志配置与开发调试技巧。在开发过程中,能够看到 MyBatis 执行的 SQL 语句和参数是排查问题的关键技能。 学习目标 理解 MyBatis 日志门面适配机制 掌握常见日志框架(Logback、Log4j2)的集成配置 理解不同日志级别(DEBUG、TRACE)与输出内容的对应关系 能够通过日志分析 SQL 执行情况 掌握开发调试中的常用技巧 学习内容 本专题涵盖以下知识点: MyBatis 日志框架集成:适配器模式 Logback 集成配置 Log4j2 集成配置 日志级别与 SQL 信息的对应关系 开发调试技巧与常见问题排查 学习建议 MyBatis 本身不提供日志实现,需引入第三方日志框架 开发环境建议将 Mapper 接口日志级别设为 DEBUG,以查看执行的 SQL 需要查看参数值时,将日志级别设为 TRACE

8 题 查看专题 →

核心配置文件专题

核心配置文件专题 专题说明 本专题详细讲解 MyBatis 核心配置文件 mybatis-config.xml 的结构与各个配置元素的用法。核心配置文件是 MyBatis 的全局控制中心,理解其结构和各元素的作用是进阶的基础。 学习目标 掌握 configuration 元素的完整结构与严格的顺序要求 理解 properties 元素的外部配置文件加载机制 掌握 settings 全局设置项的配置与常用参数 理解 typeAliases 类型别名的定义与使用 掌握 environments 数据源的配置方式与连接池类型 学习内容 本专题涵盖以下知识点: configuration 元素结构与 DTD 顺序 properties 外部属性文件加载 settings 全局配置项 typeAliases 类型别名(自定义与内置别名) environments 数据源配置(UNPOOLED、POOLED、JNDI) mappers 映射文件注册 学习建议 元素顺序是重点也是容易出错的地方,务必牢记 settings 配置项较多,先掌握最常用的几项 typeAliases 可以减少全限定类名的书写,提升开发效率

11 题 查看专题 →

注解开发专题

注解开发专题 专题说明 本专题精选9道代表性题目,系统讲解MyBatis的注解开发方式,涵盖@Select/@Insert/@Update/@Delete基础CRUD注解、@Results结果映射、@One/@Many关联查询、@SelectProvider/@UpdateProvider动态SQL提供者等核心内容,适合偏好代码内联、减少XML配置的开发场景。 学习目标 掌握基础CRUD注解的使用方法与属性配置 熟练使用@Results进行结果映射 掌握@One和@Many实现一对一和一对多关联查询 理解嵌套查询与嵌套结果映射的区别 掌握@SelectProvider等SQL Provider构建动态SQL 了解注解开发与XML开发的优缺点与适用场景 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 注解基础 4题 @Select/@Insert、@Results、@Param、基础关联 注解进阶 5题 @One/@Many嵌套查询、@SelectProvider、N+1问题、综合应用 学习建议 先阅读完整指南文章,理解注解开发的整体设计 重点掌握@One/@Many的使用,理解嵌套查询与嵌套结果映射的区别 注意fetchType属性对加载策略的影响 @SelectProvider适合中等复杂度的动态SQL,过于复杂的SQL仍建议用XML 理解N+1问题的产生原因与避免方案

9 题 查看专题 →

源码架构与核心原理专题

源码架构与核心原理专题 专题说明 本专题深入剖析MyBatis源码架构,涵盖SqlSessionFactory构建流程、SqlSession生命周期管理、Executor执行器体系、四大核心组件(StatementHandler/ParameterHandler/ResultSetHandler/Executor)以及一级/二级缓存的工作机制。 学习目标 理解SqlSessionFactoryBuilder构建流程和XMLConfigBuilder解析顺序 掌握SqlSession的生命周期与线程安全特性 深入理解三种Executor(Simple/Reuse/Batch)及CachingExecutor装饰器 掌握StatementHandler路由机制与PreparedStatement创建流程 理解ParameterHandler参数绑定与TypeHandler转换机制 掌握ResultSetHandler结果映射、嵌套映射与自动映射行为 学习内容 SqlSessionFactory构建:XMLConfigBuilder、Configuration、解析顺序 SqlSession生命周期:线程安全、资源释放、事务管理 Executor体系:Simple/Reuse/Batch、BaseExecutor模板方法、CachingExecutor装饰器 StatementHandler:RoutingStatementHandler路由、三种实现类 ParameterHandler:DefaultParameterHandler、TypeHandlerRegistry ResultSetHandler:DefaultResultSetHandler、嵌套映射、自动映射 学习建议 源码分析是理解MyBatis的关键,建议结合IDE调试跟踪源码执行流程。Executor的装饰器模式、StatementHandler的路由分发、ResultSetHandler的嵌套映射是面试高频考点,也是开发自定义插件的基础。

17 题 查看专题 →

生产环境最佳实践专题

生产环境最佳实践专题 专题说明 本专题全面讲解MyBatis生产环境最佳实践,涵盖监控告警体系设计、SQL注入纵深防御、线程安全与并发控制、异常重试与幂等性设计、配置热部署等核心能力,覆盖从开发到运维的完整生命周期。 学习目标 掌握生产环境监控指标体系设计与告警分级策略 深入理解SQL注入防护的纵深防御体系 掌握MyBatis各核心组件的线程安全特性 学会死锁异常的重试策略与幂等性设计 理解配置热部署的完整实现方案与回滚机制 学习内容 监控与告警:SQL性能指标、连接池指标、缓存指标、告警分级 SQL注入防护:#{}/$ {}区别、白名单校验、拦截器检测、OGNL风险 线程安全与并发:SqlSessionFactory/SqlSession/Mapper线程安全特性 异常处理与重试:死锁重试、Spring Retry、幂等性设计 热部署与配置刷新:XML热加载、Configuration更新、回滚机制 学习建议 生产环境最佳实践是系统稳定性的保障。SQL注入防护是安全必考点,线程安全是并发基础,异常重试和幂等性是金融级系统必备能力。建议结合实际项目理解监控体系设计和热部署方案。

10 题 查看专题 →

生态工具与扩展专题

生态工具与扩展专题 专题说明 本专题全面讲解MyBatis生态工具与扩展,涵盖MyBatis Generator代码生成与定制、Redis第三方缓存集成、MyBatis-Plus核心特性与条件构造器、PageHelper分页插件原理与使用等生态核心工具。 学习目标 掌握MyBatis Generator的配置、使用与插件定制 理解MyBatis两级缓存机制及Redis分布式缓存集成 掌握MyBatis-Plus的IService/BaseMapper关系与Wrapper条件构造器 深入理解PageHelper分页原理、ThreadLocal线程安全与PageInfo封装 学会自定义Cache接口实现 学习内容 MyBatis Generator:generatorConfig.xml配置、三个generator标签、PluginAdapter定制 第三方缓存集成:Cache接口、RedisCache配置、序列化要求 MyBatis-Plus:BaseMapper、IService、ServiceImpl、Wrapper条件构造器、分页插件 PageHelper:startPage使用、ThreadLocal线程安全、拦截器SQL改写、PageInfo封装 学习建议 生态工具是提升开发效率的关键。MyBatis Generator可大幅减少CRUD代码编写,MyBatis-Plus是当前最流行的MyBatis增强工具,PageHelper是经典的分页解决方案。建议结合实际项目理解各工具的适用场景和限制。

13 题 查看专题 →

缓存机制专题

缓存机制专题 专题说明 本专题精选15道代表性题目,系统讲解MyBatis的缓存机制,涵盖一级缓存(SqlSession级别)、二级缓存(Mapper级别/跨Session)、缓存配置(eviction淘汰策略、size/flushInterval/readOnly)、自定义缓存实现(Cache接口、LruCache/ScheduledCache装饰器)、缓存脏数据预防(flushCache、useCache、cache-ref)等核心内容,是MyBatis性能优化的重要手段。 学习目标 理解一级缓存的作用域、生命周期与失效场景 掌握二级缓存的开启条件与配置方式 熟悉缓存淘汰策略(LRU、FIFO、SOFT、WEAK) 掌握缓存配置属性(size、flushInterval、readOnly、eviction) 了解自定义缓存实现的接口与装饰器 掌握缓存脏数据的预防方案 学习内容 本专题涵盖以下3个知识点: 知识点 题目数 核心内容 一级缓存 4题 作用域、生命周期、失效场景、默认开启 二级缓存 6题 开启条件、配置属性、跨Session共享、cache-ref 缓存配置 5题 淘汰策略、自定义实现、装饰器、脏数据预防 学习建议 先阅读完整指南文章,理解两级缓存的整体架构 重点区分一级缓存与二级缓存的作用域差异 二级缓存需要同时满足全局配置和Mapper配置两个条件 理解缓存淘汰策略的适用场景 注意脏数据问题及预防方案 自定义缓存实现是扩展分布式缓存的基础

15 题 查看专题 →

高级映射与复杂场景专题

高级映射与复杂场景专题 专题说明 本专题精选9道代表性题目,深入讲解MyBatis高级映射与复杂场景处理,涵盖嵌套结果集映射优化、大数据量查询优化、流式查询Cursor、复杂关系映射等高阶内容。 学习目标 理解嵌套结果集映射与N+1问题的本质区别 掌握流式查询(Cursor)在大数据量场景中的应用 学会处理复杂关系映射与多对多关系 掌握大数据量导出优化方案 学习内容 本专题涵盖以下2个知识点: 知识点 题目数 核心内容 嵌套结果集映射优化 4题 JOIN查询、内存结果集拆分、避免N+1问题 大数据量查询优化 5题 流式查询、Cursor、fetchSize、连接资源管理 学习建议 重点理解嵌套结果集映射与嵌套select的根本区别 流式查询必须在SqlSession打开状态下使用 MySQL驱动需要特殊配置才能启用真正的流式查询 大数据量场景避免一次性加载全部结果到内存

9 题 查看专题 →

高级结果映射专题

高级结果映射专题 专题说明 本专题精选15道代表性题目,系统讲解MyBatis的高级结果映射功能,涵盖association一对一关联、collection一对多关联、嵌套结果映射与嵌套查询的区别、discriminator鉴别器动态映射、延迟加载配置(lazyLoadingEnabled/lazyLoadTrigger)、N+1查询问题与解决方案等核心内容,是MyBatis处理复杂关联关系的必备知识。 学习目标 掌握association元素实现一对一关联映射 掌握collection元素实现一对多关联映射 理解嵌套查询与嵌套结果映射的区别与适用场景 熟练使用discriminator鉴别器实现动态结果映射 掌握延迟加载的全局配置与局部配置 理解N+1查询问题的产生原因与解决方案 学习内容 本专题涵盖以下3个知识点: 知识点 题目数 核心内容 association 关联 5题 一对一关联、嵌套查询、嵌套结果映射 collection 集合 5题 一对多关联、ofType、延迟加载、N+1问题 discriminator 鉴别器 5题 动态映射、case匹配、resultMap引用 学习建议 先阅读完整指南文章,理解高级结果映射的整体架构 重点掌握association和collection的使用,注意区分一对一和一对多 理解嵌套查询(select属性)与嵌套结果映射(JOIN SQL)的根本区别 discriminator是高级特性,根据列值动态选择resultMap N+1问题是关联查询的经典问题,理解其产生原因与解决方案 延迟加载只能缓解N+1问题,不能从根本上解决

15 题 查看专题 →

MyBatis 中级技能认证测试

技能认证

本试卷为 MyBatis 中级技能认证测试,面向已掌握 MyBatis 基础开发的工程师,重点考察进阶特性在实际项目中的应用能力。

试卷覆盖动态 SQL、高级结果映射、缓存机制、TypeHandler 自定义类型处理器、与 Spring 集成、插件机制、批量操作与性能优化、存储过程与高级查询、注解开发共 9 个核心知识点。

20 题 70 分钟 ★★

MyBatis 初级技能认证测试

技能认证

本试卷为 MyBatis 初级技能认证测试,面向刚接触 MyBatis 框架的开发者。试卷覆盖 MyBatis 入门阶段的 7 个核心知识点,包括框架概述、环境搭建、SQL 映射文件、参数传递、CRUD 操作、接口绑定、日志调试和核心配置。通过本认证的考生应掌握 MyBatis 基础使用能力,能够独立完成简单的数据库交互开发。

20 题 60 分钟 ★

MyBatis 概述与环境搭建专题测试

本试卷针对 MyBatis 入门阶段的核心知识点进行考察,涵盖 MyBatis 框架简介、开发环境搭建以及第一个 MyBatis 程序的编写。适合初学者检验对 MyBatis 基本概念和配置的理解。

14 题 40 分钟 ★

MyBatis 高级技能认证测试

技能认证

本试卷为 MyBatis 专家阶段高级技能认证测试,面向具备 MyBatis 实际使用经验、希望获得高级认证的开发者。试卷覆盖源码架构、性能调优、插件开发、多租户、生态工具、高级映射及生产最佳实践七大知识模块,全面检验候选人的 MyBatis 深度理解能力与实战水平。

20 题 80 分钟 ★★★

SQL 映射文件基础专题测试

本试卷针对 MyBatis 入门阶段的 SQL 映射文件基础 知识点进行专项测试,涵盖 mapper 根元素、select/insert/update/delete 四大 SQL 标签的使用与属性配置,以及动态 SQL 的基础应用。适合刚接触 MyBatis XML 映射文件的开发者自测巩固。

12 题 40 分钟 ★

TypeHandler 自定义类型处理器专题测试

本试卷针对 MyBatis TypeHandler 自定义类型处理器专题设计,涵盖 TypeHandler 接口、枚举类型处理、JSON 类型处理、枚举字段映射四大知识点模块。适合已完成入门阶段学习、正在进阶的开发者使用,帮助巩固 TypeHandler 的核心概念与实际应用。

13 题 45 分钟 ★★

与 Spring 集成专题测试

本试卷针对 MyBatis 进阶阶段"与 Spring 集成"专题,共 14 道题,涵盖 Spring-MyBatis 集成核心组件、声明式事务管理、Mapper 接口注入和多数据源配置四大知识点。适合已完成入门阶段、希望巩固 Spring 与 MyBatis 集成能力的学习者。

14 题 45 分钟 ★★

动态 SQL 专题测试

本试卷针对 MyBatis 动态 SQL 核心标签进行专项测试,涵盖 <if>、<choose>、<where>、<set>、<trim>、<foreach>、<bind>、<sql> 等标签的使用场景与综合应用。适合 Java 后端开发人员巩固 MyBatis 动态 SQL 技能。

14 题 45 分钟 ★★

参数传递与结果映射专题测试

本试卷面向 MyBatis 入门阶段学习者,聚焦参数传递与结果映射两大核心主题。涵盖单参数传递、多参数传递(含 @Param 注解、JavaBean、Map 等方式)、resultType 与 resultMap 的区别、驼峰命名转换以及基本类型结果集等知识点,帮助巩固 MyBatis 数据交互的基础能力。

14 题 40 分钟 ★

基本 CRUD 实战专题测试

本试卷针对 MyBatis 入门阶段的"基本 CRUD 实战"知识点进行专项测试,涵盖增删改查核心操作、SQL 映射配置、参数传递与结果集映射等基础内容。适合刚接触 MyBatis 的开发者检验 CRUD 实战能力。

8 题 40 分钟 ★

多租户与数据权限专题测试

本试卷聚焦 MyBatis 多租户架构与数据权限控制的核心实践,面向中高级后端开发岗位。考察多租户三种数据库方案的选型与对比、MyBatis 拦截器实现数据权限过滤、动态数据源切换机制、ThreadLocal 上下文管理及事务陷阱等关键技术点。

8 题 50 分钟 ★★★

存储过程与高级查询专题测试

本试卷面向 MyBatis 进阶阶段,聚焦存储过程调用与高级查询封装两大核心能力。涵盖存储过程的 CALLABLE 执行方式、IN/OUT/INOUT 参数配置、游标结果处理、复杂查询封装等关键知识点,适合已掌握 MyBatis 基础 CRUD 的开发者进行巩固提升。

9 题 45 分钟 ★★

性能调优实战专题测试

本试卷面向 MyBatis 性能调优实战 专题,适用于具备一定 MyBatis 使用经验、希望系统性提升数据库性能优化能力的中高级开发者。试卷覆盖批量操作优化、连接池调优、缓存策略、执行计划分析、慢查询定位与优化等核心知识域,旨在检验应试者对 MyBatis 性能瓶颈的识别能力和实战优化方案的設計能力。

12 题 50 分钟 ★★★

批量操作与性能优化专题测试

本试卷聚焦 MyBatis 批量操作与性能优化专题,涵盖 ExecutorType 批量执行器、SQL 语句优化、结果集大小控制、批量操作事务控制等核心知识点。适用于中级开发者巩固提升,检验对 MyBatis 性能调优的掌握程度。

10 题 45 分钟 ★★

接口绑定与动态代理专题测试

本试卷针对 MyBatis 入门阶段的"接口绑定与动态代理"知识点进行专项测试,适合初学 MyBatis 的开发者巩固核心概念。考察重点包括 Mapper 接口与 XML 的绑定机制、动态代理的原理与使用方式、接口方法与 SQL 语句的映射规则等基础内容。

9 题 40 分钟 ★

插件开发高级应用专题测试

本试卷面向 MyBatis 专家级开发者,聚焦插件开发高级应用核心知识点。试卷覆盖插件代理链原理、多插件执行顺序、分页插件深度定制、数据脱敏插件、SQL 审计日志插件五大知识模块,题型包含单选、判断、多选、填空和简答,全面考察对 MyBatis 插件机制的理解与实战能力。

适用岗位:高级 Java 后端开发、架构师、框架开发工程师。

10 题 50 分钟 ★★★

插件机制专题测试

本试卷面向 MyBatis 进阶阶段学习者,聚焦 插件机制 核心知识点,涵盖插件拦截原理、分页插件实现、性能监控插件及自定义 Interceptor 开发等专项内容。

通过本试卷可检验对 MyBatis 插件体系的理解深度,包括底层动态代理机制、责任链模式、SQL 重写原理及生产环境监控方案选型。

10 题 45 分钟 ★★

日志配置与调试专题测试

本试卷面向 MyBatis 入门阶段学习者,重点考察日志框架集成、SQL 日志输出配置及开发调试技巧。适用于刚接触 MyBatis、需要掌握日志排查能力的开发者。

8 题 40 分钟 ★

核心配置文件专题测试

本试卷针对 MyBatis 入门阶段的"核心配置文件"知识点进行专项测试,涵盖 configuration 元素结构、properties 属性文件、environments 数据源配置、settings 全局设置、typeAliases 类型别名等核心内容。适合初学者检验对 MyBatis 核心配置文件的理解程度。

11 题 40 分钟 ★

注解开发专题测试

本试卷针对 MyBatis 注解开发专题,涵盖常用注解使用、动态 SQL 注解、复杂映射配置等核心知识点,适合已完成 MyBatis 基础学习、希望掌握注解开发方式的开发者。

9 题 45 分钟 ★★

源码架构与核心原理专题测试

本试卷面向 MyBatis 专家级开发者,聚焦源码架构与核心原理。涵盖 SqlSessionFactory 构建流程、Executor 执行器体系、StatementHandler 语句处理、ResultSetHandler 结果处理、SqlSession 生命周期等核心模块,要求深入理解 MyBatis 内部组件的协作机制与源码实现细节。

17 题 50 分钟 ★★★

生产环境最佳实践专题测试

本试卷面向具备一定生产环境经验的 MyBatis 开发者,聚焦生产环境中的最佳实践与高难度场景。试卷涵盖 SQL 注入防护、线程安全与并发、监控与告警、异常处理与重试、热部署与配置刷新等核心知识点,通过多选题、填空题和简答题全面考察学员在生产环境下的问题分析与方案设计能力。

10 题 50 分钟 ★★★

生态工具与扩展专题测试

本试卷聚焦 MyBatis 生态中的核心工具链与扩展能力,涵盖 MyBatis Generator 代码生成、MyBatis-Plus 增强特性、第三方缓存集成(如 Redis)、分页插件(PageHelper)、多数据源支持等专家级知识点。适合已完成 MyBatis 基础与进阶学习、希望深入掌握生态工具使用与原理的开发者。

13 题 50 分钟 ★★★

缓存机制专题测试

本试卷针对 MyBatis 缓存机制专题设计,涵盖一级缓存、二级缓存配置、缓存读写策略、自定义缓存实现及缓存脏数据处理等核心知识点。适用于 Java 后端开发岗位的进阶能力评估,帮助检验对 MyBatis 缓存体系的系统理解。

15 题 45 分钟 ★★

高级映射与复杂场景专题测试

本试卷面向 MyBatis 高级映射与复杂场景,涵盖嵌套结果集映射优化、复杂继承映射、动态表名与列名、大数据量查询优化、软删除与逻辑删除等专家级知识点,适合具备一定 MyBatis 实战经验、希望冲刺高级开发岗位的学员。

9 题 50 分钟 ★★★

高级结果映射专题测试

本试卷针对 MyBatis 高级结果映射专题,面向 Java 后端开发岗位,全面考察一对一关联、一对多集合映射、多对多关联查询、鉴别器、嵌套查询与 N+1 问题、延迟加载等核心知识点的理解与应用能力。试卷共 15 道题,涵盖单选、多选、判断、填空、简答五种题型。

15 题 45 分钟 ★★