sqlMap中尽量不要使用$;$使用的是Statement(拼接字符串),会出现注入问题。#使用的是PreparedStatement(类似于预编译),将转义交给了数据库,不会出现注入问题;.前者容易出现SQL注入之类的安全问题,所以ibatis推荐使用#。

1、  正确使用$示例:ORDER BY $sortFieldName$ $sortType$,当参数是数据库字段名时这样使用是合适的,但一定注意这些参数一定不能是用户输入的。

2、  错误使用$示例:URL LIKE '%$URL$%',比如参数URL传进一个单引号“'”,生成的sql语句会是:URL like '%'%',这样肯定是会报错的,解决方法是利用字符串连接的方式来构成sql语句,此处应该改为: URL LIKE '%’||#URL#||’%'。

3、  错误的使用$一般都出现在 like后面,可以搜索 %$ 或者 $%。修改方法比较简单直接替换即可。%$替换为 %’||# , $%替换为#||’%。

综上:

对于like语句,难免要使用$写法,

1. 对于Oracle可以通过'%'||'#param#'||'%'避免;

2. 对于MySQL可以通过CONCAT('%',#param#,'%')避免;

3. MSSQL中通过'%'+#param#+'% 。

如下3种SQL语句:

  1. mysql: select * from t_user where name like concat('%',#name #,'%')
  2. oracle: select * from t_user where name like '%'||#name #||'%'
  3. SQL Server:select * from t_user where name like '%'+#name #+'%

最新文章

  1. .NET正则表达式基础入门(三)
  2. linux 2.6 驱动笔记(三)
  3. 【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战
  4. 深入理解HTML表格
  5. PL/0编译器(java version) – SymbolTable.java
  6. 2016HUAS暑假集训训练2 E - I Hate It
  7. C#基础知识系列三(类和结构体、String和StringBuilder、equals和==)
  8. Hdu 1429 胜利大逃亡(续) 分类: Brush Mode 2014-08-07 17:01 92人阅读 评论(0) 收藏
  9. C++ STL stack和queue
  10. ubuntu 实现界面切换
  11. 几款实力很强的小工具,提高Windows使用效率
  12. Protostuff序列化分析
  13. PTA第二次作业
  14. Java提高班(二)深入理解线程池ThreadPool
  15. 设置eclipse联想功能
  16. trap(陷井)
  17. ios三张图片组合一张
  18. 关于gcc编译器中函数不用进行原型声明的解释
  19. webstorm配置babel自动转译es6的方法
  20. crm2013js弹出窗口

热门文章

  1. rabbitmq 重复ACK导致消息丢失
  2. 2016-12-15 java开发工作中,尚未做的工作
  3. 【SharePoint学习笔记】第1章 SharePoint Foundation开发基础
  4. 在CentOS中将/var等已有目录挂载到新添加的硬盘
  5. urllib2抓取HTML存入Excel
  6. <<面向模式的软件架构2-并发和联网对象模式>>读书笔记
  7. 营业额统计(SBT)
  8. storm基础系列之五---------接入数据收集系统flume
  9. Jenkins若干小问题
  10. d3安装异常