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注入。 在项目开发总能用# 的就 用# 。
通常的写法是这样的:
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注入。 在项目开发总能用# 的就 用# 。
相关文章推荐
- python和php的面向对象
- 1029. Median (25)
- 网络设备将网口切换到业务板以后为什么会报各种不正确的信息?
- 1029. Median (25)
- 桶排序
- js子窗体与父窗体
- 基数排序
- 计数排序
- linux中的alsa工具与Android中的tinyalsa工具
- Apache配置防盗链
- [Android Pro] StarUML 版本破解
- Dom4j中的中文编码问题
- CSS从大图中抠取小图完整教程(background-position应用)
- Android中Service的一个Demo例子
- Android中Service的一个Demo例子
- Android中Service的一个Demo例子
- 【游】游戏Buff机制
- java Windows平台 调用c++
- 9.UITouch 保存手指的信息(触摸的点
- Linux中新增硬盘的分区,格式化与挂载