ibatis 中 $与#的区别

区别:

1、$  只是简单的字符拼接

如:

select * from table where id = $id$

如果id为数字则正常,若为字符串,则会报错,应该写成:
select * from table where id = '$id$'

2、# 进行变量替换
上述例子写成如下,则不会出问题
select * from table where id = #id#

'#'可以防止sql注入

使用建议:


  • 1、对于变量部分, 应当使用#,这样可以有效的防止sql注入,并且都是用到了prepareStement,这样对效率也有一定的提升。
  • 2、$只是简单的字符拼接而已,对于非变量部分, 那只能使用$, 实际上, 在很多场合,$也是有很多实际意义的 。 例如 :select * from $tableName$ 对于不同的表执行统一的查询。 $只是字符串拼接, 所以要特别小心sql注入问题。
  • 3、能同时使用#和$的时候最好用#。
 


更多精选文章
标签: id、拼接、注入、写成、sql
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏