MyBatis中的#{}和${}有什么区别


#{}和${}是MyBatis中用来传递参数的两种方式。

    #{}:在SQL语句中使用#{}表示一个占位符,MyBatis会使用PreparedStatement来处理这个占位符,可以防止SQL注入攻击。#{}会将传入的参数按照JDBC规范进行处理,比如自动添加单引号,转义特殊字符等。

示例:

<select id="getUserById" resultType="User">SELECT * FROM user WHERE id = #{userId}</select>
    ${}:在SQL语句中使用${}表示一个变量,MyBatis会将${}替换为实际的参数值,然后拼接到SQL语句中。使用${}需要注意SQL注入攻击的风险,因为参数值会直接替换到SQL语句中。

示例:

<select id="getUserByName" resultType="User">SELECT * FROM user WHERE name = '${userName}'</select>

因此,推荐使用#{}的方式来传递参数,以防止SQL注入攻击。


上一篇:怎么处理PaddleOCR返回的文本结果

下一篇:PaddleOCR能够识别手写文字吗


MyBatis
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器