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

   2024-10-25 4220
核心提示:#{}和${}是MyBatis中用来传递参数的两种方式。#{}:在SQL语句中使用#{}表示一个占位符,MyBatis会使用PreparedStatement来处理这

#{}和${}是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注入攻击。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号