当前位置: 移动技术网 > IT编程>开发语言>Java > mybatis中${}和#{}的区别_chenjie的博客

mybatis中${}和#{}的区别_chenjie的博客

2020年07月18日  | 移动技术网IT编程  | 我要评论

mybatis中${}和#{}的区别

#{}的说明:

假如现在有如下sql语句:
select id,username from t_user where age = #{age}
首先这条sql语句中的#{}会被mybatis解析成?,也就是成了这样
select id,username from t_user where age = ?
再通过preparedstatement给占位符设置参数为22的话,那个sql语句就变成
select id,username from t_user where age = '22'
使用#{}能有效避免sql注入

${}的说明:

假如现在有如下sql语句:
select id,username from t_user order by ${age}
这条sql中的${age}不会被解析成?,也不会被preparedstatement给设置参数。如果你的参数是age,那么这条sql语句就被拼接变成了:
select id,username from t_user order by age

如何选用:

#{}:当传入的参数时同数据库进行交互的时候,使用#{}.
${}:当插入的参数时作为SQL执行的一部分的时候必须使用它

简单的判断:传入的参数在SQL中是否能够加上单引号。可以加单引号使用#{};不能加单引号使用${}。

本文地址:https://blog.csdn.net/cczxcce/article/details/107416619

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网