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

在 MyBatis 配置文件中,SQL 语句里的 #{} 和 ${} 分别表示什么,有什么差别?

亚信科技(中国)有限公司后端开发专业服务安全意识技术原理问题排查MyBatisSQL

考察说明

考察 MyBatis 参数绑定、SQL 注入防护和动态 SQL 的边界

回答思路

  1. 准确说明 #{} 是预编译参数占位符,${} 是字符串直接拼接
  2. 明确 #{} 能防止 SQL 注入,${} 有注入风险
  3. 说明 ${} 用于表名、列名、排序等无法参数化的场景
  4. 提到使用 ${} 时需校验输入,避免注入漏洞
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。