#{} 是预编译处理 是占位符 ${}是字符串替换,是拼接符
Mybatis再处理#{}的时候,会将sql中的#{}替换为?号,调用PreparedStatement来赋值(相当与在原来的值上面加上了单引号)
Mybatis在处理${}的时候,会将${}替换成为变量的值,调用Statement来赋值(直接替换)
#{}的变量替换实在数据库管理系统中,变量替换后,#{}对应的变量自动加上单引号
${]的变量替换是在数据库管理系统中,变量替换后,${}对应的变量不会加上单引号
使用#{}可以有效的防止SQL注入,提高系统的安全性。