$的作用是字符拼接,不能防止sql注入,比如:
select * from ${tableName}
select * from table where id in ${Id}
而#{}的作用是充当占位符
select * from #{tableName} 就会变成 select * from 'tableName' 运行时就会报错
总结一下:${}一般用在我们能够确定值的地方,也就是自己赋值的地方
#{}用在用户输入值的地方