项目场景:
mapper.xml文件中sql语句执行失败,显示输入的参数数量不对
问题描述
sql
<select id="page" resultType="com.sky.entity.Employee">
select * from employee
<where>
<if test="name != null and name !=''">
and name like concat('%','#{name}','%')
</if>
</where>
order by create_time desc
</select>
xml文件出错
原因分析:
当name的输入为中文字符串时,例如 "标准" 二字会导致mybatis无法自动注入name
解决方案:
将xml文件中的sql语句修改为
sql
<select id="page" resultType="com.sky.entity.Employee">
select * from employee
<where>
<if test="name != null and name !=''">
and name like concat('%',#{name},'%')
</if>
</where>
order by create_time desc
</select>
去掉单引号即可