${}是字符串替换,mybatis在处理${},就是直接把${}里面的值替换成变量的值
而#{}则是预处理,它会对sql语句进行预处理,先用占位符?代替,再调用PreparedStatement的set来赋值。
总结来说,#{} 比 ${}更加的安全,可以防注入等,能用 #{} 尽量用 #{}。
${}是字符串替换,mybatis在处理${},就是直接把${}里面的值替换成变量的值
而#{}则是预处理,它会对sql语句进行预处理,先用占位符?代替,再调用PreparedStatement的set来赋值。
总结来说,#{} 比 ${}更加的安全,可以防注入等,能用 #{} 尽量用 #{}。