一、编译区别
1.使用#
select id,name, email,age from student where id=#{studentId}
编译后: select id,name, email,age from student where id=?
2.使用$
select id,name, email,age from student where id=${studentId}
编译后:select id,name, email,age from student where id=1001
二、# 和 $区别
1. #使用 ?在sql语句中做站位的, 使用PreparedStatement执行sql,效率高
2. #能够避免sql注入,更安全。
3. $不使用占位符,是字符串连接方式,使用Statement对象执行sql,效率低
4. $有sql注入的风险,缺乏安全性。
5. $:可以替换表名或者列名