需求:根据用户名称模糊查询用户信息
resultType属性:查询结果对应的类型(自动完成映射)
若查询出来的数据是若干条,即返回的是集合,则填写单条记录的数据类型
#{} 相当于之前的占位符?,类似PrepareStatement使用方式,可有有效避免SQL注入的问题
若是简单数据类型,{}里面的名字可以任意写;
若是引用数据类型,{}里面的名字只能与此类型中的属性名一致
${} 拼接sql语句,类似于Statement使用方式,会造成SQL注入问题
若是简单数据类型,{}里面只能是value,即${value}
当传参时,类似于' or 1=1 or '结构,则会造成SQL注入
sql拼接 :
<select id="selectListByLikeName" parameterType="String" resultType="User">
select * from user where username like '%${value}%'
</select>
占位符 :
<select id="selectListByLikeName" parameterType="String" resultType="User">
select * from user where username like concat('%',#{username},'%')
</select>
博客围绕根据用户名称模糊查询用户信息的需求展开,介绍了MyBatis中resultType属性,即查询结果对应类型。还阐述了#{}和${}的使用方式,#{}可避免SQL注入,${}会造成SQL注入,并说明了不同数据类型下两者的填写规则。

被折叠的 条评论
为什么被折叠?



