MyBatis中的#{}和${}如何使用

887
2024/5/4 13:12:52
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在MyBatis中,#{}和${}都是用于向SQL语句中传递参数的方式,但它们有一些区别。

  1. #{}:#{}是使用预编译的方式传递参数,MyBatis会将#{}中的内容替换为一个问号(?),然后将参数值作为预编译参数传递给数据库,这样可以避免SQL注入攻击。示例:SELECT * FROM user WHERE id = #{userId}

  2. ${}:${}是直接替换参数值的方式,MyBatis会将${}中的内容直接替换为参数值,这样会有SQL注入的风险。示例:SELECT * FROM user WHERE id = ${userId}

因此,一般来说推荐使用#{}来传递参数,以增加安全性。如果需要动态拼接SQL语句或者传递一些常量值,可以使用${}。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: MyBatis怎么压缩和清理日志文件