在用Mybaits时出现的一个小Bug

错误提示

Cause: org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [arg1, arg0, param1, param2]

  • 接口 和 对应的Mapper文件
int addBill(Connection connection, Bill bill) throws Exception;


<insert id="addBill" parameterType="Bill">
        insert into smbms_bill (id,
        billCode,productName,productDesc,productUnit,productCount,totalPrice,isPayment,createdBy,creationDate,modifyBy,modifyDate,providerId)
        values
        (#{id},#{billCode},#{productName},#{productDesc},#{productUnit},#{productCount},#{totalPrice},#{isPayment},#{createdBy},#{creationDate},#{modifyBy},#{modifyDate},#{providerId})
</insert>

错误分析

根据错误提示可以确定,是传入的参数不对应,因为我这个接口的方法的参数是两个也没有用@Param() 指定 Bill对象,索引参数不对应。

修改

  • 接口
int addBill(Connection connection,@Param("bill") Bill bill) throws Exception;
  • Mapper配置文件
<insert id="addBill" parameterType="Bill">
        insert into smbms_bill (id,
        billCode,productName,productDesc,productUnit,productCount,totalPrice,isPayment,createdBy,creationDate,modifyBy,modifyDate,providerId)
        values
        (#{bill.id},#{bill.billCode},#{bill.productName},#{bill.productDesc},#{bill.productUnit},#{bill.productCount},#{bill.totalPrice},#{bill.isPayment},#{bill.createdBy},#{bill.creationDate},
#{bill.modifyBy},#{bill.modifyDate},#{bill.providerId})
</insert>

补充

posted @ 2022-11-10 21:46  如夢初醒  阅读(61)  评论(0)    收藏  举报