SQL代码
1.select * from tbuser where id in (#ids#)
参数使用的是string类型,值是“1,2,3,4”,然而一直查不到数据。想了N久,也不懂得如何解决。后来在baidu了一下,找到了一些相关资料,终于可以解决了。以下是一点资料整理。
由于使用"#id#"来传值,形成的SQL就是
SQL代码
1.select * from tbuser where id in ("1,2,3,4")
所以也就不能查询成功。正确的方式应该是使用"$"来传值,其SQL如下
SQL代码
1.select * from tbuser where id in ($ids$)
$和#的区别在于, $方式传进的参数值是直接生成到SQL文里面的
而#是作为PrepareStatement的(?)参数传进SQL里面的
形式上看,$比#方式要灵活。不过,这两种方式是为了应对不同的问题的。
当用#方式传入画面上直接输入的值时能够很大程度上防止SQL注入攻击。
而用$方式传直接输入参数的时候,是无法防止SQL注入攻击的。
$方式主要是用来把数据库对象名当作参数传入。
这是#方式做不到的这种做法不太常见,一般只有在写共同逻辑的时候用
ibatis中的#和$有什么区别。
#:#name#,是指一个属性叫name,把name的值传进来。会在name的值的两侧加上引号。如:where name = #name#,name传进来的值是 李花花 ,那么上面的语句就会解读为where name = '李花花'。
$:$name$,是指一个属性叫name,就是把name的值原样放到sql语句中。两边不加引号。个人理解,这种写法,很少传什么名字之类的。基本上都是传字段的名称。如:order by $name$,name传进来的值是 id ,那么上面的语句就会解读为order by id。
分享到:
相关推荐
ibatis中输入输出各种类型的参数分析及#与$区别
ibatis中 $ 于 # 的 区别 ibatis中 $ 于 # 的 区别
ibatis sql语句对条件中特殊字符% # 处理
操作数据库 iBATIS查询,java 和spring的配置方法
该问题对初学者很有提示性帮助,里面主要是个人对ibatis的##的认识
ibatis学习 ibatis总结 ibatis ibatis ibatis
Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
ibatis官方中文文档.rar包含ibatis官方中文文档及使用说明
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
ibatis入门与ibatis迭代的用法
ibatis demo,ibatis例子,ibatis示例
ibatis 拼接字符串
iBATIS 级联iBATIS 级联iBATIS 级联
ibatis 乱码解决 ibatis乱码 gbk iso_8859_1 乱码
ibatis2.0中文API ibatis2.0中文API ibatis2.0中文API 一对多 多对一详解,属性设置详解,解决方案详解,ibatis2.0核心API
ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法
ibatis的原码 ibatis源码 ibatis源码 ibatis源码
学会ibatis 中sqlMap配置
内容简介 《iBATIS实战》是讲述iBATIS框架的...项目经理、数据库管理员、质量保证员与测试员以及系统分析师也能从《iBATIS实战》中受益。 作者简介 作者:(加拿大)Clinton Begin (加拿大)Brandon Goodin 译者:叶俊