最近使用 mybatis 写项目的时候遇到报错:org.apache.ibatis.binding.BindingException: Parameter ‘brOrderNo’ not found. Available parameters are [dataList, param1]
从报错信息来看提示的也很明显,说找不到参数 brOrderNo,dataList 为请求传过来的参数体的命名的name。
旧代码如下:
public String publicAtionSelective(@Param("dataList") PostCommonRequest po) {
//拼接 sql 语句
SQL sql = new SQL();
//字段
sql.SELECT("id");
sql.FROM("`borrow_order`");
//筛选条件
sql.WHERE("cbo.`br_order_no` = #{brOrderNo,jdbcType=VARCHAR}");
//最终SQL
return sql.toString();
}
解决方案只需要将 brOrderNo 绑定到对应的参数体即可,不然就提示找不到。
public String publicAtionSelective(@Param("dataList") PostCommonRequest po) {
//拼接 sql 语句
SQL sql = new SQL();
//字段
sql.SELECT("id");
sql.FROM("`borrow_order`");
//筛选条件
sql.WHERE("cbo.`br_order_no` = #{dataList.brOrderNo,jdbcType=VARCHAR}");
//最终SQL
return sql.toString();
}