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

本文介绍了在Mybatis中遇到的参数绑定异常问题,特别是当使用动态SQL的<where>标签时。错误原因是Mybatis无法正确映射参数。解决方法是在方法参数前添加@Param注解指定参数名称。同时,列举了需要使用@Param的四种情况:多参数、参数别名、$符号注入和动态SQL。了解这些可以帮助避免类似问题,确保Mybatis查询的正常运行。
摘要由CSDN通过智能技术生成

错误: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,即使方法只有一个参数(即是以上遇到的问题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BB-X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值