码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis #{}和${}区别

时间:2020-05-16 20:32:15      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:statement   搜索   连接   不能   --   简单   value   red   prepare   

区别1

  • #{}:相当于JDBC Sql语句中的占位符?(PreparedStatement),可以防止Sql注入
  • ${}:相当于JDBC Sql语句中的连接符号+(Statement),不能防止Sql注入

区别2

  • #{}:进行输入映射的时候,会对参数进行类型解析(如果是String类型,那么Sql语句会自动加上‘ ‘)
  • ${}:进行输入映射的时候,将参数原样输出到SQL语句中 -->相当于replace替换相应位置的值

  注:模糊搜索时,注意使用的是${},如果使用的是#{},会在两头加上‘‘,此时sql语句变成:select * from user where username like ‘%‘张三‘%‘;这样不就报错了嘛

技术图片

区别3

  • #{}:如果进行简单类型(String、Date、8种基本类型的包装类)的输入映射时,#{}中参数名称可以任意
  • ${}:如果进行简单类型(String、Date、8种基本类型的包装类)的输入映射时,#{}中参数名称必须是value

技术图片

 

mybatis #{}和${}区别

标签:statement   搜索   连接   不能   --   简单   value   red   prepare   

原文地址:https://www.cnblogs.com/chenyanbin/p/12901693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!