Alchemist66 2017-11-17 04:22 采纳率: 100%
浏览 6550
已采纳

MyBatis 出现参数绑定异常 Parameter 'start' not found.

MyBatis 出现参数绑定异常 Parameter 'start' not found. Available parameters are [0, param1, param2, state]
下面是部分代码
bean(提供了get set方法):

     private Integer start;//起始记录
    private Integer end;//结束记录
    private Integer pageNumber;//当前页号
    private Integer pageSize;//每页显示记录数
    private Integer count;//总记录数
    private Integer totalPage;//总页数
    private List<E> data=new ArrayList<E>();//存储数据
    public Integer getStart() {
        start=((pageNumber-1)*pageSize)+1;
        return start;
    }
    public void setStart(Integer start) {
        this.start = start;
    }

dao接口

    public void getWorksByStatePage(PageBean<Work> pageBean,@Param("state")String state);

XML映射文件
这里是调用Oracle存储过程完成的分页

 <select id="getWorksByStateAndUserIDPage" statementType="CALLABLE" >
            {call getWorksByStatePageAndUserId(
                #{start,mode=IN,jdbcType=INTEGER},
                #{end,mode=IN,jdbcType=INTEGER},
                #{state,mode=IN,jdbcType=VARCHAR},
                #{userID,mode=IN,jdbcType=INTEGER},
                #{count,mode=OUT,jdbcType=INTEGER},
                #{data,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=pageWork}
            )}
    </select>
    <!-- data指定封装规则(WORK表) -->
    <resultMap type="cn.myapp.qcs.work.po.Work" id="pageWork">
        <!-- 数据库     类变量 -->
        <id column="WORKID" property="workId"/>
        <result column="ISREAD" property="isRead"/>
        <result column="ACATIVITY" property="acativity"/>
        <result column="CUSID" property="cusId"/>
        <result column="DES" property="des"/>
        <result column="USERID" property="userID"/>
        <result column="STATE" property="state"/>
        <result column="CREATEDATE" property="creatDate"/>
        <result column="RECEIVEDATE" property="receiveDate"/>
        <result column="COMPLETEDATE" property="completeDate"/>
    </resultMap>

我在想是不是接口那里同时传入对象和String造成取不到值的问题,但是@Param("pageBean")加上以后XML用#{pageBean.start}的形式会有406错误

已经改好了
对象和普通参数一起使用要用@Param("pageBean") XML使用#{pageBean.start}
或者XML直接用#{0.start}的形式取值

后来报的406是因为springmvc的问题
参考http://blog.csdn.net/aosica321/article/details/73471320解决的

展开全部

  • 写回答

3条回答 默认 最新

  • danielinbiti 2017-11-17 08:16
    关注
     参数不对,第一个参数是对象,不是具体的属性
      #{0.start,mode=IN,jdbcType=INTEGER},
                    #{0.end,mode=IN,jdbcType=INTEGER},
                    #{0.state,mode=IN,jdbcType=VARCHAR},
                    #{0.userID,mode=IN,jdbcType=INTEGER},
                    #{0.count,mode=OUT,jdbcType=INTEGER},
                    #{0.data,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=pageWork}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥20 关于普洛菲斯触摸屏与AB连接地址问题
  • ¥15 vue但是页面显示的数据为空为什么呀,明明在钩子函数中已经成功赋值(相关搜索:输出数据)
  • ¥15 syri可视化不显示插入缺失
  • ¥30 运行软件卡死查看系统日志分析不出来
  • ¥15 C语言代码改正特征选择算法设计,贝叶斯决策,,设计分类器,远程操作代码修正一下
  • ¥15 String 类valuve指向的问题
  • ¥15 在ros2的iron版本进行编译时遇到如下问题
  • ¥18 vs用setup project打包项目实现安装完立即运行
  • ¥15 孟德尔随机化TwoSampleMR在线提取结局数据,遇到Error in check_reset(override_429)的问题
  • ¥15 ONNX转RKNN遇到问题
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部