码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-06 20:57:55      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:字符串拼接   简单   dstat   字符串   括号   ram   col   类型转换   属性   

 

#{}:如果传入的是字符串,则会将其中的值作为字符串拼接sql上。 安全

${}:如果传入的是字符串,则不会作为字符串,而是直接拼接到sql上。不安全

条件名:name = "age"
select
* from user order by #{name}; --> select * from user order by age; select * from user order by ${name}; --> select * from user order by age;

 

#{}和${}

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java数据类型和jdbc类型转换,#{}可以有效的防止sql注入。可以接收基本类型值或类对象(user)。如果parameterType传输单个基本类型值,#{}括号中可以是value或其他名称。自动识别。

${}表示拼接sql串,通过${}可以将parameterType传入的内容拼接在sql中且不进行jdbc类型转换,${}可以接收简单类型值或对象类对象(user)属性值,如果parameterType传输单个基本类型值,${}括号中只能是value。

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

标签:字符串拼接   简单   dstat   字符串   括号   ram   col   类型转换   属性   

原文地址:https://www.cnblogs.com/jumpkin1122/p/11603001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!