Mybatis 中在传参时,$ 和# 的区别
Mybatis 中在传参时,$ 和# 的区别
牧羊人Berg 发表于1年前
Mybatis 中在传参时,$ 和# 的区别
  • 发表于 1年前
  • 阅读 90
  • 收藏 2
  • 点赞 1
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Mybatis 中在传参时,$ 和# 的区别

做个小笔记:

MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型。

在SQL中引用这些参数的时候,可以使用两种方式**#{parameterName}或者${parameterName},**

使用#{parameterName}引用参数的时候,Mybatis会把这个参数认为是一个字符串,例如传入参数 是“Smith”,那么在SQL(Select * from emp where name = #{employeeName})使用的时候就会转换为Select * from emp where name = 'Smith';

同时在SQL(Select * from emp where name = ${employeeName})使用的时候就会转换为 Select * from emp where name = Smith。

再次,从安全性上考虑,能使用#尽量使用#来传参,因为这样可以有效防止SQL注入的问题。

最后总结一下必须使用$引用参数的情况,eg: 那就是参数的int型的时候,必须使用$引用。

共有 人打赏支持
粉丝 25
博文 96
码字总数 87512
×
牧羊人Berg
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: