#{} 和 ${}区别

{} 和 ${}区别

#{}在引用时,如果发现目标是一个字符串,则会将其值作为一个字符串拼接在sql上,即拼接时自动包裹引号
${}在引用时,即使发现目标是一个字符串,也不会作为字符串处理,拼接在sql时不会自动包裹引号
例如:
所以通常情况下,使用#{}

insert into user values (null,#{name},55); --> insert into user values (null,'fff',55);
insert into user values (null,${name},55); --> insert into user values (null,fff,55);//sql语句错误

而如果需要引用的是一个列名,使用${}

select * from user order by #{cname}; --> select * from user order by 'age';//sql语句错误
select * from user order by ${cname}; --> select * from user order by age;

你可能感兴趣的:(mybatis)