您的位置:首页 > 其它

Mybatis 中用# 和 $ 的区别

2015-11-14 18:04 316 查看
在项目中一直在使用Mybatis 框架,由于在传参数的时候一直用 # ,从来没有用过$ ,所以也没有注意到这个区别。今天在面试的时候,被问到。没答上来 ,实在是感觉丢人。

通常的写法是这样的:

1.使用 #

select * from tableName where name =#{name}

这样 Mybatis 会认为 # {name } 是一个 字符串 'name', 比如
name 传的是 zhangsan , 那么在执行的时候就会变成

select * from tableName where
name = 'zhangsan'.

2 . 使用 $

select * from tableName where
name = ${name } , name 传的是zhangsan ,执行的时候就会变成

select * from tableName where name = zhangsan

总结:

主要区别就是 # 能够防止sql注入。 在项目开发总能用# 的就 用# 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: