iBatis解决sql注入
(1) ibatis xml配置:下面的写法只是简单的转义 namelike '%$name$%'
(2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%'
(3) 解决方法是利用字符串连接的方式来构成sql语句 name like '%'||'#name#'||'%'
(4) 这样参数都会经过预编译,就不会发生sql注入问题了。
(5) #与$区别:
#xxx# 代表xxx是属性值,map里面的key或者是你的pojo对象里面的属性,ibatis会自动在它的外面加上引号,表现在sql语句是这样的 where xxx = 'xxx' ;
$xxx$ 则是把xxx作为字符串拼接到你的sql语句中, 比如 order by topicId , 语句这样写 ... order by #xxx#,ibatis 就会把他翻译成 order by 'topicId' (这样就会报错) 语句这样写 ... order by $xxx$ibatis 就会把他翻译成 order by topicId
Sql代码
SELECT * FROM user WHERE username like '%' || #username# || '%'
其实上面的语句是针对Oracle 的,对于不同数据字符串连接符不一样。现列举mysql和SQLServer如下:
Mysql:
SQLServer:
-----------------------------------------------------------------------------------------------------------------------------
关于数据库字符串连接符简单列举我使用过的一些数据库如下:
Oracle | SQLServer | Mysql | DB2 |
|| 或 CONCAT() | + | CONCAT() | || 或 CONCAT() |
转自:http://blog.csdn.net/csdnbenbenchong/article/details/7105939
相关推荐
在用iBatis.net与数据库打交道的过程中,发现iBatis.net拼接字符串不能直接拷贝然后在dbms里执行
ibatis 拼接字符串
本工程用于研究Ibatis和MySQL结合使用的方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char(36) NOT NULL...
描述与iBatis相关技术与数据库进行增删改查操作
IBATIS连接多数据库参考文档,只供参考,学习。
全面介绍了关于ibatis操作数据库的各种类型,在程序中编辑SqlMapClient对象的成员函数的参数,从而对数据库进行更新
Ibatis连接ORACLE数据库的小例子
操作数据库 iBATIS查询,java 和spring的配置方法
ibatis.net winform搭建带数据库,博客,http://blog.csdn.net/binyulong/article/details/78739746
运用IBATIS在三层架构的基础上建立的数据库连接,主要是一个框架,突出重点,一看就明白。最适合初学者快速学习使用,里面的条路清晰。
本工程用于研究Spring、Ibatis结合MySQL数据库的使用方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char...
struts spring ibatis mysql 整合 实例 数据库 源码
NULL 博文链接:https://foxpro.iteye.com/blog/435001
通过Ibatis实现简单的数据库的添加、删除、修改等功能的小小资料!
2.数据库链接统一放在“config/ibatis/properties.config”里面。 3.使用前请先建立表Student与Teacher,表中字段请参照各自的StudentMap.xml、TeacherMap.xml。 4.通过log4net记录错误日志,出错时会打印执行的sql...
ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc
NULL 博文链接:https://sziitjiang.iteye.com/blog/1013134
动态sql拼接
使用vs2013 和 Ibatis.net1.6.2以及asp.net mvc整合的增删改查demo 数据库部分