mybatis中#{}和${}的区别
-
输入映射
#{}相当于jdbc sql语句中的占位符 “?” 即PreparedStatement,并且在输入映射时会对参数进行类型解析,当参数是String时,sql语句连接参数时会自动加上’’。
${}相当于jdbc sql语句中的连接符 + 即Statement,也就是说在输入映射时会将参数直接添加到sql语句中 -
对简单类型进行输入映射,#{}中的参数可以是任意的,但是${}中的参数只能是value。
简单输入类型包括8种基本类型的封装类,String,Date
以上 的 描 述 会 造 成 , 当 使 用 {}的描述会造成,当使用 的描述会造成,当使用{}传递参数的时候会产生Sql注入问题。只要将OR 1=1设置成参数值,就可以使where条件恒成立。使用时请注意。