#号与$区别:
#号表示参数,$代表一个字符串。如:
select a,b,c from table1 where id=#value#,传入参数后如:value="1",
则可生成:select a,b,c from table1 where id=‘1’。
select a,b,c from table1 where city like '%$value$%',传入参数后:
value="berg",则可生成:elect a,b,c from table1 where city like
'%berg%'.
${} 为原样输出,你传什么,sql里就填入什么。比如有引号它也会原样填到sql
里。
#{} 会使用 PreparedStatement,变量处用 ? 代替。
在能使用 #{} 尽量使用它吧,可以防止sql注入。