Mybatis的Mapper映射文件中,有两种方式可以引用形参变量进行取值: #{} 和 ${}。本文将简述两种方式的区别和适用场景
取值引用
#{} 方式
#{}: 解析为SQL时,会将形参变量的值取出,并自动给其添加引号。 例如:当实参username="Amy"时,传入下Mapper映射文件后
......
<select id="findByName" parameterType="String" resultMap="studentResultMap">
SELECT * FROM user WHERE username=#{value}
</select>
....
SQL将解析为:
SELECT * FROM user WHERE username='Amy'
${} 方式
${}: 解析为SQL时,将形参变量的值直接取出,直接拼接显示在SQL中
例如:当实参username="Amy"时,传入下Mapper映射文件后
......
<select id="findByName" parameterType="String" resultMap="studentResultMap">
SELECT * FROM user WHERE username=${value}
</select>
....
SQL将解析如下:
SELE