博客
关于我
mybatis #{}和${}区别
阅读量:405 次
发布时间:2019-03-06

本文共 437 字,大约阅读时间需要 1 分钟。

区别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

 

转载地址:http://hdmkz.baihongyu.com/

你可能感兴趣的文章
C语言实现面向对象方法学的GLib、GObject-初体验
查看>>
系统编程-进程-ps命令、进程调度、优先级翻转、进程状态
查看>>
为什么我觉得需要熟悉vim使用,难道仅仅是为了耍酷?
查看>>
系统编程-进程-守护进程、孤儿进程、僵尸进程
查看>>
一个支持高网络吞吐量、基于机器性能评分的TCP负载均衡器gobalan
查看>>