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,则可以列出整个表里面的所有数据。