mybatis中${}和#{}的区别_chenjie的博客
程序员文章站
2022-07-08 10:26:52
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 ag...
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