${} 是字符串替换,底层使用了 statement
#{} 是占位符,mybatis在处理 #{} 时,会将SQL中的#{}替换为 ? ,底层使用的是 preparestatement
在学习 JDBC 的时候一般会讲这两者的区别,前者由于直接进行字符串拼接,有SQL注入的隐患,后者由于有预编译,可以防止SQL注入
在mybatis中${}与#{}的区别
最新推荐文章于 2024-08-02 16:18:07 发布
${} 是字符串替换,底层使用了 statement
#{} 是占位符,mybatis在处理 #{} 时,会将SQL中的#{}替换为 ? ,底层使用的是 preparestatement
在学习 JDBC 的时候一般会讲这两者的区别,前者由于直接进行字符串拼接,有SQL注入的隐患,后者由于有预编译,可以防止SQL注入