后端岗位面试题更新 2026-08-05

MyBatis 中 #{} 和 ${} 有什么区别?

中国移动研究院后端开发通信/运营商安全意识技术原理MyBatis

考察说明

考察 MyBatis 参数处理的原理与 SQL 注入风险意识

回答思路

  1. 说明 #{} 使用预编译占位符,可防止 SQL 注入
  2. 说明 ${} 直接拼接字符串,存在注入风险但有动态列名等场景
  3. 提及 #{} 会自动进行类型处理,${} 不会