错误:Mybatis参数绑定异常(BindingException)

<select id="xxx" resultType="java.lang.String" parameterType="java.util.List">
    select xxx
    from xxx
    <where>
        xxx in
        <foreach collection="ids" item="id" open="(" close=")" separator=",">
            #{id,jdbcType=VARCHAR}
        </foreach>
    </where>
</select>

原因:使用了动态SQL拼装<where>,Mybatis参数映射失败

处理:给参数添加@Param("ids")注解即可

=========================================================================

Mybatis中需要添加@Param指定参数名称的四种情况:

1、方法有多个参数

2、方法参数需要取别名

3、使用了$注入参数(不建议使用,会有SQL注入漏洞:永真校验"' or '1=1"/额外操作"';select * from admin_info")

4、动态拼装的SQL,即使方法只有一个参数(即是以上遇到的问题)

更多推荐

Mybatis参数绑定异常-org.mybatis.spring.MyBatisSystemException/org.apache.ibatis.bindin