Mybatis中#{}和${}的区别

对着背影说爱祢 提交于 2019-12-03 06:38:01

      1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号,而$将传入的数据直接显示生成在sql中  ,例:select * from user where id=#{id} ,如果id为1那么解析成sql就是select * from user where id="1";

如果用的是${id} 解析成sql为select * from user where id= 1 。

     2.#可以防止sql注入,而$不可以。

sql注入:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

SQL注入攻击案例:
查看某个表查询的url参数为:?id=1
则通过注入命令:?id=1 or 1=1,则可以列出整个表里面的所有数据。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!