Mybatis #和$
来源:互联网 发布:网络写作培训班 编辑:程序博客网 时间:2024/04/30 00:07
在mybatis的mapper文件中,对于传递的参数我们一般是使用#和$来获取参数值。
当使用#时变量是占位符,就是一般我们使用java jdbc的PrepareStatement时的占位符?,所有可以防止sql注入
当使用$时,变量就是直接追加在sql中,一般会有sql注入问题。
一个问题就是:在使用mybatis传递时间变量时,如果通过#方式获取变量值,可能会出现与数据库的字段的类型不匹配错误,一般我们只需要获取一个String即可。
所有可以通过$来获取时间值。
如下情况sql语句可能会报错:
<if test=" startTime!=''"><span style="white-space:pre"></span>c_create_time <![CDATA[ >= ]]>#{startTime}</if>
可以修改为这种形式:
<if test=" startTime!=''"><span style="white-space:pre"></span>c_create_time <![CDATA[ >= ]]> '${startTime}'</if>
或者使用数据库的内置函数进行类型转换(postgresql如下)
<if test=" startTime!=''"><span style="white-space:pre"></span>c_create_time <![CDATA[ >= ]]> date(#{startTime})</if>
0 0
- Mybatis #和$
- mybatis----#{}和${}
- mybatis #和$
- mybatis的#和$
- Mybatis 中#和$区别
- mybatis类和xml
- mybatis和iBATIS差异
- myBatis中$和#区别
- mybatis和ibatis区别
- mybatis和hibernate对比
- Mybatis和Spring整合
- Hibernate和MyBatis区别
- hibernate和mybatis
- MyBatis流程和框架
- mybatis 高速缓存和二级缓存
- Mybatis和Hibernate区别
- mybatis和spring集成
- mybatis和spring整合
- 关于MotionEvent的小知识
- poj 3278--- Catch That Cow
- 练习1-a
- VS2010工具箱缺少Microsoft Communications Control组件解决方法
- Hadoop MapReduce程序的模板框架
- Mybatis #和$
- 用cout输出指定位数小数方法
- 如何导出内存镜像
- PAT1039到底买不买(20)
- Math的常用方法(用于操作数字)
- 基因数据处理15之scala对BWA运行结果进行时间提取
- swift简单学习之类和对象(2)
- C++ 学习之路(7):共享数据的保护
- 在linux下编译.pc文件