一. 主要区别

#a# //解析sqlmap配置文件时自动加单引号,即'a'

$a$ //解析sqlmap配置文件时不加单引号,即a 如果传进来的条件需要order by的话,那一定用第二种

#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by "id",这当然会报错..

$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id, 这就对了. 

二. 解析

在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:

select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为整型,那么#id#就是id类型。

select * from table where id = $id$ ,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成 select * from table where id = '$id$'  

三.用途的区别

1.#方式能够很大程度防止sql注入.

2.$方式无法防止sql注入.

3.$方式一般用于传入数据库对象.例如传入表名.

4.一般能用#的就别用$.

最新文章

  1. MongoDB【第三篇】MongoDB基本操作
  2. 批量修改一张表格的多个sheet名
  3. 转载 网页打印时设置A4大小
  4. 基于mapreduce的大规模连通图寻找算法
  5. 写过的HTML标签(一)
  6. FusionChart 导出图片 功能实现(转载)
  7. PHP内核变量存储
  8. 关于mysql使用命令行时出现Data too long for column的解决方案:
  9. [BZOJ1269] [AHOI2006] 文本编辑器editor (splay)
  10. 二维条码扫描模组在肯德基KFC的无纸化点餐解决方案
  11. python +selenium识别不来click事件,出现报错
  12. 理解 OAuth2.0
  13. Docker安装配置MongoDB并使用Robo 3T在局域网连接
  14. 关于dp(背包)
  15. Hive 和 Mysql
  16. 练习|Django-单表
  17. JQUERY验证上传文件大小
  18. Linux动态库(.so)搜索路径
  19. .NET后台访问其他站点代码整理
  20. SQL中动态进行行转列

热门文章

  1. SQL SERVER 查找锁信息
  2. 日笔记--C# 从数据库取表格到DataGridView---json传输
  3. DevExpress GridControl使用教程:之 添加 checkbox 复选框
  4. .Net MVC5路由机制与扩展
  5. ClamAV学习【2】——clamscan入口函数浏览
  6. lambda 、 map 、filter 、reduce 及 reversed 常用函数
  7. 数论入门2——gcd,lcm,exGCD,欧拉定理,乘法逆元,(ex)CRT,(ex)BSGS,(ex)Lucas,原根,Miller-Rabin,Pollard-Rho
  8. redis5.0.4-cluster集群搭建及jedis客户端操作
  9. SQL注入不简单?那是你没有懂它的原理~
  10. Android跳转淘宝、京东APP商品详情页