码上岸
首页Java面试八股文章项目实战在线工具知识星球特价云服务器
首页/MyBatis 面试题
M

MyBatis 面试题

连载中

MyBatis 面试题:动态代理、一二级缓存、动态 SQL、插件机制与批量操作。

4 篇文章 开始阅读

教程目录

1

MyBatis 的核心组件和执行流程?

一、核心组件 SqlSessionFactory:SqlSession 工厂,重量级,全局一个。 SqlSession:与数据库交互的会话,非线程安全,每次操作创建。 Executor:执行器,负责 SQL 执行和缓存维护。 StatementHandler:处理 JDBC Statement。 P

2

MyBatis 的一级缓存和二级缓存?

一、一级缓存 默认开启,作用域是 SqlSession。 同一个 SqlSession 内,相同 SQL 直接从缓存取。 执行 update/insert/delete 或 close 后缓存清空。 多个 SqlSession 不共享,可能导致脏读。 二、二级缓存 需手动开启,作用域是 Mapper

3

MyBatis 常用动态 SQL 标签?

一、if 条件判断,满足则拼接 SQL 片段。 WHERE 1=1 <if test="name != null">AND name = #{name}</if> 二、where 自动去掉多余的 AND/OR,自动加 WHERE。 <where> <if test="name != null"

4

MyBatis 的延迟加载?

一、定义 关联查询时,只在真正用到关联对象时才执行查询加载,避免一次性加载所有数据。 二、配置 <settings> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading"

© 2026 码上岸 · Powered by Halo