- #{} 和 ${} 的区别是什么
- ${} 是 Properties 文件中的变量占位符,它可以用于 XML 标签属性值和 SQL 内部,属于字符串替换。 例如将 ${driver} 会被静态替换为 com.mysql.jdbc.Driver ${} 也可以对传递进来的参数原样拼接在 SQL 中,实际场景下,不推荐这么做。因为,可能有 SQL 注入的 风险。 #{} 是 SQL 的参数占位符,Mybatis 会将 SQL 中的 #{} 替换为 ? 号,在 SQL 执行前会使用 PreparedStatement 的参数设置方法,按序给 SQL 的 ? 号占位符设置参数值,比如 ps.setInt(0, parameterValue) 。 所以,#{} 是预编译处理,可以有效防止 SQL 注入,提高系统安全性。
几句话记住Mybatis中#{} 和 ${} 的区别
最新推荐文章于 2024-07-14 22:18:32 发布