1、#{}:

#{}解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,就像JDBC中使用Statement进行数据库操作,sql语句直接与参数值拼接,容易引发sql注入攻击。

2、${}:

${仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换;就像JDBC中使用PreparedStatement进行数据库操作,可以有效防止sql注入攻击。

 

综上所得, ${ } 变量的替换阶段是在动态 SQL 解析阶段,而 #{ }变量的替换是在 DBMS 中。

相关文章:

  • 2021-08-24
  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
猜你喜欢
  • 2021-10-19
  • 2022-03-08
  • 2021-05-24
  • 2022-12-23
  • 2022-01-01
  • 2021-05-27
  • 2021-10-11
相关资源
相似解决方案