ibatis #于 $区别

系统框架用ibatis,开发中ibatis配置文件中执行order by #orderByClause# ,怎么搞都没有效果,

后面改成 order by $orderByClause$,OK,问题解决,然后就研究了下 ibatis 中# 和$ 这两个标签的区别。

 # 会对参数进行数据类型的匹配,

 比如 select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是‘id‘类型,如果id为整型,那么#id#就是id类型。

$ 不进行数据类型匹配
比如 select * from table where id = $id$ ,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成 select * from table where id = ‘$id$‘
$ 的作用实际上是字符串拼接,将字符串原样输出,使用场景  1 order by #orderByClause#; 2 select * from $tablename$; 3 select * from user where Name = ‘%$userName$%’(模糊查询写法)注意地方$ 便签很容易被sql注入进来,谨慎使用,# 可防止sql注入,参数动态参数变量,效率比较高。参考文章http://jsczxy2.iteye.com/blog/1218679http://www.cnblogs.com/langtianya/archive/2013/03/19/2969557.htmlhttp://my.oschina.net/u/989066/blog/156627
 
时间: 2024-09-30 00:03:15

ibatis #于 $区别的相关文章

hibernate和ibatis的区别

通过别人的资料,进行自己关注的一些扼要点的整理 共同点: 1. 不同点:1. 自动化程度上,hibernate是全自动化的orm框架,提供了对象到数据库的完全映射和sql的内部自动生成,其对象映射是指pojo到整张数据表的映射.而ibatis则是半自动化的,其对象映射是指ibatis提供了sql语句的参数到pojo的映射,sql语句的返回到pojo的映射,而且sql语句并不自动生成,由开发者手动编写和维护. 2. 框架灵活性.自动化程度上的区别,直接影响了框架灵活性的区别.比如,在场景A中,要查

Mybatis与Ibatis的区别

Mybatis与Ibatis的区别: 1.Mybatis实现了接口绑定,使用更加方便 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便. 这可以说是Mybatis最重要的改进. 注意: 虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置, 不过强烈建议仍然使用xml配置的方式.毕竟annotation的配置方式功能有限且代码

【Mybatis】MyBatis调用带有返回结果、output参数的存储过程上与ibatis的区别

用过mybatis的应该都知道它是ibatis被Google收购后重新命名的一个工程,因此也做了大量升级.本文就来介绍下两者在调用存储过程上的一点区别,ibatis有一个专门的标签<procedure>,在mybatis里面已经没有这标签了,而是通过一个参数statementType="CALLABLE"来区分. 存储过程: ALTER PROCEDURE [dbo].[Pro_Create_Number] @ChannelNo VARCHAR(10) ,--渠道号 @Nu

hibernate跟Mybatis/ ibatis 的区别,为什么选择?(转)

第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. 1.1 Hibernate 简介Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行.程序员往往只需定义好了POJO 到数据库表的映射关

Hibernate与Mybatis/iBatis的区别

由于公司近期要用MyBatis或Hibernate来进行dao层开发,所以对Hibernate和Mybatis做了一个简单的对比,不当之处还望大家指正 Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. 1. Hibernate 简介 Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了P

具体问题:3、hibernate跟Mybatis/ ibatis 的区别,为什么选择?

第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html Hibernate参考资料: http://docs.jboss.org/hibernate/core/3.6/refe

iBatis.Net(C#)SQL数据映射

转载请注明 http://www.cnblogs.com/13590/archive/2013/03/01/2938126.html 摘要:本文探讨了iBatis.Net框架的XML数据映射文件各配置节点的含义,并通过CRUD四种对数据库的操作讲解了如何配置数据映射文件和调用方法. 关键词:iBatis.Net:XML:SQL Maps:数据映射 上一节介绍了iBatis.Net的基本情况和运行原理,运行环境中各参数的配置情况.并通过一个实例项目进行了说明. 1 数据映射基础 SQL Maps是

Java开发岗位面试题

看到一些java面试题,准备慢慢自己做出来试试. 一.Java基础 1. String类为什么是final的. 只有当字符串是不可变的,字符串池才有可能实现.字符串池的实现可以在运行时节约很多heap空间,因为不同的字符串变量都指向池中的同一个字符串.但如果字符串是可变的,那么String interning将不能实现(注:String interning是指对不同的字符串仅仅只保存一个,即不会保存多个相同的字符串.),因为这样的话,如果变量改变了它的值,那么其它指向这个值的变量的值也会一起改变

疯狂Java学习笔记(51)-----------面试题

自己做了一点面试题,感觉很经典,分享给大家,发现还有很多东西需要学! 一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答:   1.String是字符串常量,StringBuffer和StringBuilder都是字符串变量.后两者的字符内容可变,而前者创建后内容不可变. 2.String不可变是因为在JDK中String类被声明为一个final类. 3.StringBuffer是线程安全的,而StringBuilder是非