【Java】mybatis报错:Could not find result map java.lang.Integer

报错现场还原

当我刚刚修改完代码后,一运行程序,就开始报错。然后我检查了对应的mapper文件和接口文件都没有发现问题。但运行任何一个和mybatis相关的测试,发现全部都报告这个错误。真是让我头疼…

还原报错信息

detailMessage=Could not find result map java.lang.Integer, stackTrace=[Ljava.lang.StackTraceElement;@7cc0ee15}
org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.lang.Integer

解决方案

第一步: 全局搜索 ctrl+shift+f 查找有没有mybatis文件里,把返回类型resultType 写成 resultMap 的情况?

第二步: 确定sql语句的返回值,如果是返回数字,那就用resultType,如果是返回的是对象或者对象列表,那就用 resultMap。如果用错了,你就会和我报同样的错误了~

原因解释

因为:resultTyperesultMap是不一样的。

  • resultType就是JavaBeanmybatis里常见的用法是在返回一些数量信息的时候。
    【Java】mybatis报错:Could not find result map java.lang.Integer
  • resultMap需要在自定义配置的,返回的是对象或者对象列表,那就用 resultMap
    【Java】mybatis报错:Could not find result map java.lang.Integer
    【Java】mybatis报错:Could not find result map java.lang.Integer