Mybatis的接口映射文件UserMapper.xml、参数传递有2种方式、一种是#{}、另一种是${}

二者有着很大的区别:

#{} 实现的是sql语句的预处理参数、之后执行sql中用?号代替、使用时不需要关注数据类型、mybatis自动实现数据

类型的转换、并 且可以防止sql注入

${} 实现是sql语句的直接拼接、不做数据类型转换。需要自行判断数据类型、不能防止sql注入

总结:

#和$的区别:

1、

#是预编译的方式,

$是直接拼接;

2、

#不需要关注数据类型,mybatis实现自动数据类型转换;

$不做数据类型转换,需要自行判断数据类型;

3、

#可以防止sql注入;

$不能防止sql注入;

4、

如果只有一个参数,默认情况下,

#{}中可以写任意的名字;

${}中只能用value来接收。