美文网首页简友广场
java 中#{}与${}的区别

java 中#{}与${}的区别

作者: 梦昼初心 | 来源:发表于2019-02-18 11:31 被阅读0次

    #{}: 表示一个占位符号,实现向PreparedStatement占位符中设置值(#{}表示一个占位符?),自动进行Java类型到JDBC类型的转换(因此#{}可以有效防止SQL注入).#{}可以接收简单类型或PO属性值,如果parameterType传输的是单个简单类型值,#{}花括号中可以是value或其它名称.

    ${}: 表示拼接SQL串,通过${}可将parameterType内容拼接在SQL中而不进行JDBC类型转换,${}可以接收简单类型或PO属性值,如果parameterType传输的是单个简单类型值,${}花括号中只能是value.

    虽然${}不能防止SQL注入,但有时${}会非常方便(如order by排序,需要将列名通过参数传入SQL,则用ORDER BY ${column},使用#{}则无法实现此功能.

    相关文章

      网友评论

        本文标题:java 中#{}与${}的区别

        本文链接:https://www.haomeiwen.com/subject/omfaeqtx.html