966 字
约 3 分钟
5
S08-X02 · MyBatis 八股速查

定位:附录索引。题 → 一句话答案 → 正文位置。
覆盖旧文:2317(427) 2617(279) + A-1758(→S07)= 787 点。
上一篇:S08-A03 · ORM 选型:MyBatis vs JPA/Hibernate
下一篇:S11 · 数据库与 SQL(下一系列)。


1. 原理与架构(对应 B01)

# 问题 一句话答案 正文
1 Mapper 为什么不用实现类 JDK 动态代理 + statementId B01 §2
2 statementId 怎么构成 接口全名.方法名 B01 §2
3 三种 Executor SIMPLE/REUSE/BATCH B01 §3
4 MyBatis 工作流程 配置→MappedStatement→代理→Executor→映射 B01 §5
5 与 Spring 怎么整合 SqlSessionFactoryBean + @MapperScan + SqlSessionTemplate B01 §4
6 为什么业务逻辑不能写 Mapper 接口没有方法体 B01 §2

2. 参数、结果与 SQL(对应 B02/B03)

# 问题 一句话答案 正文
7 #{} 与 ${} 预编译占位 vs 字符串拼接 B02 §1
8 ${} 的注入风险(实测) 注入串 → 全表 3 行 B02 §2
9 ${} 合法用途 动态表名/排序列(白名单) B02 §3
10 驼峰映射怎么开 map-underscore-to-camel-case B02 §4
11 多参数不加 @Param BindingException B02 §5
12 动态 SQL 标签 if/choose/where/set/foreach/trim B03 §2
13 <where> 不解决什么 条件全空 → 全表 B03 §4

3. MyBatis-Plus(对应 B04/B05/J01/J04)

# 问题 一句话答案 正文
14 MP 与 MyBatis 关系 增强,不是替代 B04 §1
15 逻辑删除是什么 SQL UPDATE ... SET deleted=1 B04 §3
16 乐观锁多什么条件 and version=? + 拦截器 B04 §4
17 怎么打印 SQL log-impl=StdOutImpl B04 §5
18 Wrapper 安全吗 apply 拼接不安全 B05 §4
19 分页插件发几条 SQL count + list(实测) J01 §1
20 深翻为什么慢 offset 线性扫描 J01 §3
21 批量最优做法 多值 insert(一条 SQL) J04 §2
22 MP "SQL 注入器"是什么 把方法注入 Mapper 的扩展 J04 §3

4. 缓存与插件(对应 J02/J03)

# 问题 一句话答案 正文
23 一级缓存作用域 SqlSession(Spring 下多在事务内) J03 §2
24 二级缓存前提 可序列化 + 同 namespace J03 §3
25 二级缓存最大的坑 跨表更新不联动清理 J03 §3
26 插件能拦哪四处 Executor/StatementHandler/ParameterHandler/ResultSetHandler J02 §1
27 延迟加载何时抛异常 事务外访问 J03 §4

5. 架构(对应 A01–A03)

# 问题 一句话答案 正文
28 分库分表前先试什么 索引/归档/读写分离 A01 §1
29 分片键怎么选 80% 查询带的字段 A01 §3
30 分片数为何取 2 的幂 取模与扩容方便 A01 §4
31 分完后的五个新问题 跨库 JOIN/分布式事务/分页/全局 ID/聚合 A01 §5
32 动态数据源怎么实现 AbstractRoutingDataSource + ThreadLocal A02 §2
33 事务内能切数据源吗 不能(连接已绑定) A02 §3
34 MyBatis vs JPA 手写 SQL vs 生成 SQL A03 §1

6. 跨系列登记

卡 内容 去向
A-1758 SpringBoot 校验两种方式 S07-B06
A-1185 MP 代码生成器 S06-J03(已认领)

本篇属于系列《S08 · MyBatis 持久层》,是基础层附录。

S08-X02 · MyBatis 八股速查
https://www.clxhxhhr.top/posts/5298/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。