1、$字符串拼接,# 参数站位相当于jdbc中的?号
2、$不能够防止sql注入,#可以防止sql注入的
3、$¥可以替换sql语句任何一个内容,#只能替换参数
4、$如果操作字符串,需要在sql中使用单引号。 #不需要(不需要判断数据类型,会自动转换)($要考虑参类型 ,#不用考虑参数类型)
简单来说#{} 解析的是占位符?可以防止SQL注入, 比如打印出来的语句 select * from table where id= ? 然而${} 作为字符串拼接来用,则是不能防止SQL注入打印出来的语句 select * from table where id=2 实实在在的参数 (sql注入:通过字符串拼接达到串改sql语句的目地)