方法一:
<select id="findUserById" parameterType="int" resultType="fy.po.User">
select * from user where username like '%${value}%' ;
</select>
${value}必须是value
调用时:sqlSession.selectList("test.findUserByUsername", "张");
方法二:
<select id="findUserById" parameterType="int" resultType="fy.po.User">
select * from user where username like #{value} ;
</select>
调用时:sqlSession.selectList("test.findUserByUsername", "%张%");
#{}和${}
#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。