ibatis中#和$符号的区别
1.美图
ibatis中#和$符号的区别
在我们使用ibatis过程中,写sqlmap配置文件时经常会用到两个特殊的传值符号#和$符合,下面根据个人的分析总结,两者的区别。
数据类型匹配
#:会进行预编译,而且进行类型匹配;
$:不进行数据类型匹配。
如:
变量name的类型是string, 值是"张三"的时候
$name$ = 张三#name# = '张三'
那么使用就会报错,若要使用就会报错,若要使用就会报错,若要使用的话,需要修改为’namenamename’;
我有一次要实现
(CURRENT_DATE-INTERVAL '7D') 使用这个 (CURRENT_DATE-INTERVAL '${dayNum}D')
实现方式
$ 的作用实际上是字符串拼接,
select * from users where name= $name$等效于StringBuffer sb = newStringBuffer(256);sb.append("select * from userswhere name=").append(name);sb.toString();
#用于变量替换
select * from users where name = #name#等效于prepareStement=stmt.createPrepareStement("select * from users where name = ?")prepareStement.setString(1,'张三');
#和$使用场景
(1)变量的传递, 必须使用#,防止sql注入;# 是用prepareStement,提示效率。
#方式一般用于传入添加/修改的值或查询/删除的where条件
(2) 只是简单的字符拼接而已,对于非变量部分,那只能使用只是简单的字符拼接而已,对于非变量部分, 那只能使用只是简单的字符拼接而已,对于非变量部分,那只能使用, 实际上, 在很多场合,$也是有很多实际意义的
$方式一般用于传入数据库对象.例如传入表名.例如:select * from $tableName$ 对于不同的表执行统一的查询update $tableName$ set name = #name# 每个实体一张表,改变不用实体的状态特别说明, $只是字符串拼接,所以要特别小心sql注入问题。(3)能同时使用#和$的时候,最好用#。
ibatis中#和$符号的区别相关推荐
- OrCAD Capture CIS 原理图绘制时Place Power(放置电源符号)中各个符号的区别
在OrCAD中绘制原理图时,点击Place Power或者快捷键F弹出窗口中有多个可选项 它们区别如下: CAPSYM库中的电源仅仅是一种符号,在电路中只表示链接的是一种电源,本身不具备电压值,但此类 ...
- 【ibatis】ibatis 中 $与#的区别
ibatis 中 $与#的区别 我们在使用iBATIS时会经常用到#和$这两个符号. 一 .#与$区别说通俗一点就是 $中间的变量就是直接替换成值的 #会根据变量的类型来进行替换 比如articleT ...
- ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
<span style="font-family: Arial, Verdana, sans-serif; white-space: normal; "><str ...
- Mybatis中的#号与$符号的区别
1.#{变量名}可以进行预编译.类型匹配等操作, 2.#{变量名}会转化为jdbc的类型. 3.${变量名}不进行数据类型匹配,直接替换. 4.#方式能够很大程度防止sql注入. 5.$方式无法方式s ...
- ibatis 中 $与#的区别
在sql配置中比如in(#rewr#) 与in ($rewr$) 在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型 ...
- 计算机中符号位正负,负数在计算机中的表示+有符号无符号的区别+负数按位运算...
部分转载自:https://blog.csdn.net/kebi007/article/details/89741960 一.负数的二进制位表示法 原码:一个整数按照绝对值的大小转换成的二进制数,称为 ...
- 负数在计算机中的表示+有符号无符号的区别+负数按位运算
部分转载自:https://blog.csdn.net/kebi007/article/details/89741960 一.负数的二进制位表示法 原码:一个整数按照绝对值的大小转换成的二进制数,称为 ...
- vi设计中视觉识别符号设计与商标设计的区别
vi设计中视觉识别符号设计与商标设计的区别 编辑:AGO(安可)品牌顾问 vi设计中视觉识别符号的主要作用是,跟企业外部组织和公众进行视觉交流,将企业精神.企业个性等加以集中和突出,并通过象征寓意的艺 ...
- mybatis与php,浅谈mybatis中的#和$的区别
浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...
最新文章
- 【OpenCV学习笔记2】OpenCV 完全安装 新增VS2010+OpenCV2.1,新增VS2010+OpenCV2.3.1
- OpenCV-Python教程(4、形态学处理)
- POJ 1321 棋盘问题(DFS 状压DP)
- Linux突然连不上网,ping不通百度,连不上MobaXterm
- 无忧开通了博客园博客主页
- linux伙伴系统接口,Linux伙伴系统(一)--伙伴系统的概述
- python输入4个数字_输入4个整数,要求按从小到大的顺序输出python
- idea 调试 js
- 「2019冬令营提高组」不同的缩写
- 51nod1183编辑距离----DP--字符串最小变化
- 在Web开发中完美控制IE标题栏
- DLLPasswordFilterImplant:DLL密码过滤器
- Unity3D学习(视频教程)
- IR2110栅极驱动密勒效应解决电路
- 如何对客户行为进行数据分析?
- 计算机教师的幸福,有关信息技术教师教育感言
- 武汉市星创天地申报条件和程序
- markdown文档:一个简单标记语言的使用及GitHub实际应用
- 如何用matlab绘制心形线,心形线的matlab程序
- Could not connect to wpa_supplicant: p2p-dev-wlan0 - re-trying
热门文章
- 特斯拉CEO马斯克再卖4套房 挂牌价6250万美元
- 来啊,一起造作啊!10月仍然还有十多场新品发布会...
- 库克:5G iPhone目前还不是我们考虑的问题
- 程序员加班到凌晨,第二天却被开除,了解原因后大家都说大快人心
- MiniGUI编程--静态框[转]
- 怎么讲d 盘里的软件弄到桌面_GNOME 2 粉丝喜欢 Mate Linux 桌面的什么?
- php ajax files 空,javascript - ajax上传文件后台使用$_files接受为空
- 如何做一个国产数据库系统(一)
- mysql nodejs 并发
- go sublime mysql_Sublime text 3开发GO