欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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