org.apache.ibatis.binding.BindingException: Parameter 'id' not found.Available parameters are [0, 1,

 异常:    

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

解决办法:

命名参数:查看接口类的方法是否明确指定封装参数是map的key:@Param("deptno")Integer deptno

比如: 

错误写法:

public Dept getByIdAndDname(Integer deptno,String dname);

正确写法:

public Dept getByIdAndDname(@Param("deptno")Integer deptno,@Param("dname")String dname);

或者在xml中列如:有背景色的字段中红色的字段——写成#{param1},#{param2}或者#{1},#{2}


PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


 
    
    
        
    
    
    
    
    
        insert into dept(dname,loc) values (#{dname},#{loc});
    

    
    
    
         
         
             
             
                SELECT seq_deptno.nextval FROM dual
            
         

             
            
                insert into dept(deptno,dname,loc)
                values (#{deptno},#{dname},#{loc})
            
    

    
    
    
        update dept
        set dname=#{dname},loc=#{loc}
        where deptno=#{deptno}
    

    
    
    
        delete from dept where deptno = #{deptno};
    

    

在mybatis中多个参数会被封装成一个map
            key:使用@Param注释指定的值
            value: 参数值
            #{指定的key}取出对应的参数值

你可能感兴趣的:(JAVA)