源:http://www.blogjava.net/lsbwahaha/archive/2009/04/16/266026.html
评:
ibatis中 $ 于 # 的 区别?
一个项目中在写ibatis中的sql语句时,where user_id in (#user_id_list# ), 运行时总是不行,后来上网查了查,才知道这里不该用#,而应该用$,随即查了下#与$的区别.
总结如下:
1.#是把传入的数据当作字符串,如#user_id_list#传入的是1,2,则sql语句生成是这样,in ('1,2') ,当然不可以
2.$传入的数据直接生成在sql里,如#user_id_list#传入的是1,2,则sql语句生成是这样,in(1,2) 这就对了.
3.#方式能够很大程度防止sql注入.
4.$方式无法方式sql注入.
5.$方式一般用于传入数据库对象.例如传入表名.
6.一般能用#的就别用$.
直观的说
#str# 出来的效果是 'str'
$str$ 出来的效果是 str
另外 ##只能用在特定的几个地方 $$可以用在任何地方 比如 order by $str$
你甚至可以直接写 $str$ 把 order by 这个字串放在str里传进来
今天花了N久,才把这个问题搞出来,郁闷下,不过出来了也挺开心的,终于搞定啦,嘿嘿~!~
分享到:
相关推荐
ibatis中 $ 于 # 的 区别 ibatis中 $ 于 # 的 区别
ibatis中输入输出各种类型的参数分析及#与$区别
ibatas的sql语句需要自己手动写,而hibernate能够在程序运行时自动生成。但是不要就这样以为hibernate比ibatas方便,其实二者熟悉之后的效率差不多。而hibernate还能够自动建表等等,这样的好处就在于你带着这个程序...
选用ibatis和hibernate的区别选用ibatis和hibernate的区别选用ibatis和hibernate的区别
iBatis和Hibernate的区别
自己总结的myBatis和ibatis的区别
在里面总结了ibatis和mybatis的主要区别,包括xml文件等
iBATIS和其他持久化框架,如Hibernate之间的显著区别在于,iBATIS强调使用SQL,而其他的框架通常使用一个自定义的查询语言,具有Hibernate查询语言(HQL)或Enterprise JavaBeans的查询语言(EJB QL)。
书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...
myibatis笔记,myibatis3.2版本与ibatis2.3版本的区别
ibatis与hibernate区别,之中包括,现在企业为什么选择ibatis而放弃hibernate的选择,所有这里吧自由选择及。
描述了ibatis与hibernate的主要区别
上一个版本是结合当前流行的主流框架,今天这个抛开了mybatis这个持久层框架,选择了ibatis作为我的...其实mybatis和ibatis的区别不是很大,配置也只是一点小区别。框架搭好了,需要的自己可以往里面添加业务逻辑
主要描述的是hibernate和ibatis的区别,在什么时候使用hibernate比较好
Ibatis Hibernate 分析 比较 区别
ibatis spring的整合快速开发 使用ibatis 和hibernate的区别
用ibatis的原因 jdbc、hibernate、ibatis的区别 spring+ibatis
ibatis与hibernate的区别.很经典的
ibatis和hibernate相比较, 做了一个整理, 包括他们的配置, 配置文件的编写.
介绍了IBATIS在开发过程中的使用步骤,配置文件的介绍,以及与HIBERNATE之间的区别等