mybatis 中#与$的区别

转载 2016年05月30日 14:09:14

MyBatis/Ibatis中#和$的区别 
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语句,比如要执行一个存储过程。

转载自:mybatis 中#与$的区别

myBatis和ibatis的区别

  • 2012年12月19日 15:25
  • 4KB
  • 下载

MyBatis排序时使用order by 动态参数时需要注意,用$而不是#, #{}和${}的区别以及order by注入问题

ORDER BY ${columnName} 这里MyBatis不会修改或转义字符串。 重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你...

mybatis或ibatis中的#和$的区别?

转自:http://weijun726.blog.163.com/blog/static/87342299201362652950398/ 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一...

mybatis的#{}占位符和${}拼接符的区别

#{}占位符:占位 如果传入的是基本类型,那么#{}中的变量名称可以随意写 如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性.属性.属性…${}拼接符:字...

面试之mybatis和hibernate的区别

从根本点出发讨论mybatis和hibernate的区别:mybatis自己写sql,hibernate自动生成sql。...

Mybatis中#和$的区别

Mybatis中$和#的区别

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

用过mybatis的应该都知道它是ibatis被Google收购后重新命名的一个工程,因此也做了大量升级。本文就来介绍下两者在调用存储过程上的一点区别,ibatis有一个专门的标签,在mybatis里...
  • hj7jay
  • hj7jay
  • 2017年07月19日 09:41
  • 713

JAVA面试要点003_Mybatis中#和$的区别

#的作用: userMapper.xml 注意这里,写sql语句,咱们可以使用xml配置的方式,也可以使用注解的方式. E:\workspace\day76_mybatis01\src\com\...

mybatis中的#号和$号的区别

之前做项目时,由于自己对之前学过的,用过的知识都没有去总结,时间一久,就会忘记,而当出现问题时,往往需要很长时间才能找到问题原因,从而浪费了大量时间在定位上,言归正传,现在说说之前遇到的一个问题。 ...
  • leo_ace
  • leo_ace
  • 2017年05月31日 23:06
  • 875

mybatis的#{}和${}的区别以及order by注入问题(转录)

原文链接:http://www.cnblogs.com/chyu/p/4389701.html 前言略,直奔主题.. #{}相当于jdbc中的preparedstatement...
  • rigous
  • rigous
  • 2017年06月29日 17:10
  • 236
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybatis 中#与$的区别
举报原因:
原因补充:

(最多只允许输入30个字)