就是一个简单的查询,selectOne方法参数类型不匹配,但是我看范例的代码是可以输入 String,int  类型的参数的啊? 小弟刚接触Mybatis 求解!!不胜感激!!

解决方案 »

  1.   

    你鼠标点击进去看看selectOne方法的参数有哪些
      

  2.   

    selectOne默认返回Object类型,所以不匹配,强制转换JiKeUser类型即可
    即改为(JiKeUser)session.selectOne(...)即可
      

  3.   

    将参数类型  parameterType= java.lang.Integer
    sql语句里面#{id}  改为 #{id,jdbcType=INTEGER}
    指定这个参数的类型。
      

  4.   

    对的,需要强转型成你用的对象   
    (JiKeUser)session.selectOne(...)
      

  5.   

    不是那个问题,是SELECTONE的参数类型不匹配,是这样
      

  6.   

    是selectone方法  不能输入 (string,int)类型的参数,但是我看范例可以啊???
      

  7.   

    是selectone方法  不能输入 (string,int)类型的参数,但是我看范例可以啊???说明可能你跟实例用的jar版本不一样
      

  8.   

    这样传参应该是没问题的,我也是这样写的。
    IDE报这个错,但是不是这个问题引起的错误。
      

  9.   

    是selectone方法  不能输入 (string,int)类型的参数,但是我看范例可以啊???
    我把范例的JAR包重新导了一遍,还是这个问题。。晕啊
      

  10.   

    是的,我看范例也是这样写的,没错啊,但是我的这个后面就是不能传INT类型的参数。。该怎么办呢?
      

  11.   

    用Integer包装下。
      

  12.   

    是的,我看范例也是这样写的,没错啊,但是我的这个后面就是不能传INT类型的参数。。该怎么办呢?
    包装完,参数传进去了,结果报错了,但是也输出了
      

  13.   

    报错是jar包不全,和业务没啥关系了。
      

  14.   

    如果我是你,而且如果时间不赶的话,我会弄一个反编译工具,一步一步DEBUG,进入jar-DEBUG,我要DEBUG到它无所遁形。
      

  15.   

    谢谢你!包装了一下传参数,问题解决了。为啥呀,范例就可以直接传INT,我JAR包也和范例用的一样
      

  16.   

    谢谢你,我吧INT 包装了一下传参数,问题解决了。但是不明白原因
      

  17.   

    谢谢你,我吧INT 包装了一下传参数,问题解决了。但是不明白原因
    JDK1.5之后,JAVA已经支持基本类型自动装箱了,你这里int值不自动包装,建议查看一下是不是JDK编译版本有问题,在eclipse里面点击项目--》右键--》properties--》java Compiler可以看到编译用的JDK版本。
      

  18.   

    谢谢你,我吧INT 包装了一下传参数,问题解决了。但是不明白原因
    JDK1.5之后,JAVA已经支持基本类型自动装箱了,你这里int值不自动包装,建议查看一下是不是JDK编译版本有问题,在eclipse里面点击项目--》右键--》properties--》java Compiler可以看到编译用的JDK版本。
    非常感谢!!!我的JDK是1.4的,我将他改成1.6,以后问题完美解决了!! 牛!!!
      

  19.   

    谢谢你,我吧INT 包装了一下传参数,问题解决了。但是不明白原因
    请问这个版本是不是设置的越高越好啊?
      

  20.   

    根据实际需求吧,一般跟你用的JDK一致就好了。
      

  21.   

    User user = (User) sqlSession.selectOne("test.findUserById",new Integer(1));
    基本类型使用包装类
      

  22.   

    一般JDK版本都是向下兼容的,所以能用高版本的就尽量用高版本