博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis/Ibatis中#和$的区别
阅读量:4557 次
发布时间:2019-06-08

本文共 456 字,大约阅读时间需要 1 分钟。

 

1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".

 

2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id,  如果传入的值是id,则解析成的sql为order by id.

 

3. #方式能够很大程度防止sql注入。

 

4.$方式无法防止Sql注入。

 

5.$方式一般用于传入数据库对象,例如传入表名. 

 

6.一般能用#的就别用$. 

 

ps:在使用mybatis中还遇到<![CDATA[]]>的用法,在该符号内的语句,将不会被当成字符串来处理,而是直接当成sql语句,比如要执行一个存储过程。

转载于:https://www.cnblogs.com/zcs201093189/p/5390311.html

你可能感兴趣的文章
leetcode-Single Number III-260
查看>>
[ActionScript&Flex] FlashBuilder编译条件之如何屏蔽调试代码
查看>>
AngularJS 表达式
查看>>
微信开发学习之路(一)
查看>>
将现有硬盘(分区)无损创建为RAID1
查看>>
[原] GLES在iOS和Android上的不同
查看>>
分布式监控解决方案zabbix03-监控mysql
查看>>
[转]DB2错误代码大全
查看>>
[转]AJAX 简介
查看>>
【转】SWT/JFace的对话框
查看>>
2019-2-28作业
查看>>
VS2010+WDK开发环境搭建最简易方法
查看>>
果然逆天,处理一亿条int32数据排序,需要耗时32秒
查看>>
解锁Dagger2使用姿势(二) 之带你理解@Scope
查看>>
设计模式——抽象工厂模式详解
查看>>
十年,青春就是一转眼的事
查看>>
C++编程规范和各种资源
查看>>
两只小熊队高级软件工程第七次作业敏捷冲刺2
查看>>
[原创]如何编写多个阻塞队列连接下的多生产者多消费者的Python程序
查看>>
如何提高数据迁移和复制的速度
查看>>