update user set flag=#flag# where id in (#id#)
传递的id为1,2,3。但是数据却没有任何的修改。
因为iBATIS默认会把“#”中间的变量作为字符串来处理。这样,就会出现这样的SQL
update user set flag='1' where id in ('1,2,3')
所以使用$将你的变量括起来,iBATIS不会给这个变量做任何的处理,直接生成你要的SQL
update user set flag=$flag$ where id in ($id$)
update user set flag=1 where id in (1,2,3)
本文详细介绍了在使用iBATIS进行SQL操作时遇到的SQL注入问题,并提供了使用$符号替代#避免变量被当作字符串处理的方法,确保SQL语句正确执行。
193

被折叠的 条评论
为什么被折叠?



