请说明 MyBatis 中 $ 与 # 的区别,以及动态 SQL 中常用的标签和动态代理的实现原理。
考察说明
考察 MyBatis 参数占位符的语义、SQL 注入风险、动态 SQL 标签使用及代理机制
回答思路
- 明确 #{} 预编译占位符与 ${} 字符串拼接的区别
- 说明适用场景及 SQL 注入风险
- 列举并解释 if、choose、where、set、foreach 等动态标签
- 概述 MyBatis 动态代理(MapperProxy)生成 Mapper 接口实现的过程
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。