• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
风拂晚柳
博客园    首页    新随笔    联系   管理    订阅  订阅

MyBatis探究-----接口类映射XML文件中符号$和#的区别

   1. $和#的区别

  • #{}和${}都可以获取map中的值或者pojo对象属性的值
  • #{}:是以预编译的形式,将参数设置到sql语句中,防止sql注入
  • ${}:取出的值直接拼装在sql语句中;会有安全问题

   2. $和#的用法

2.1 表名、排序作为变量时,必须使用 ${ }

select * from ${year}_salary where xxx;

select * from tbl_employee order by ${f_name} ${order}

2.2 能使用 #{ } 的地方就用 #{ }

接口映射文件中SQL语句:select * from t_employee where empId=${empId} and empName=#{empName}
执行的预编译SQL语句:select * from t_employee where empId=2 and empName=?

posted @ 2019-09-14 14:26  风拂晚柳  阅读(382)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3