Mybatis 预防 sql 注入问题

mybatis 使用 #{} 而不是 ${} 可以很大程度预防 sql 注入,因为:

  • #{} 是一个参数占位符,对于字符串类型,会自动加上 "",其他类型不加。由于 Mybatis 采用预编译,其后的参数不会再进行 SQL 编译,所以一定程度上防止 SQL 注入。
  • ${} 是一个简单的字符串替换,字符串是什么,就会解析成什么,存在 SQL 注入风险