区别:
1、#{}是预编译处理,MyBatics在处理#{}时,它会将sql中#{}替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如“4,44,514”会变成'4,44,514'.。
2、${}是字符串替换,MyBatics在处理${}时,它会将sql中${}替换为变量的值,传入的数据不会在两边加上单引号。
注:使用${}会导致sql注入,不利于系统的安全。
sql注入就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令