Linux 拨号vps windows公众号手机端

MyBatis中的#{}和${}有哪些区别

lewis 1年前 (2024-03-10) 阅读数 14 #程序编程
文章标签 mybatis

  1. #{}用于预编译,将参数以安全方式传递给SQL语句,可以防止SQL注入攻击。而${}是直接将参数值拼接到SQL语句中,存在SQL注入的风险。

  2. #{}是用来替代传入参数的位置,MyBatis会将#{}替换为一个问号(?)占位符,然后将参数值作为预编译参数传递给数据库。而${}是直接将参数的值替换到SQL语句中。

  3. #{}只能用于传递参数值,例如WHERE语句中的条件值,而${}可以用于动态拼接SQL语句的其他部分,例如表名、列名等。

  4. #{}会自动对参数值进行转义处理,而${}不会进行转义处理。

总的来说,推荐在编写SQL语句时使用#{}来传递参数,以确保安全性和预编译的效果。而${}适用于动态拼接SQL语句的其他部分。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门