網上已經有很多文章說明可能導致這個報錯的原因,無非是以下幾種:
1.檢查xml文件的namespace是否正確
2.Mapper.java的方法在Mapper.xml中沒有,然后執行Mapper的方法會報此
3.xxxMapper.java的方法返回值是List,而select元素沒有正確配置ResultMap,或者只配置ResultType
4.如果你確認沒有以上問題,請任意修改下對應的xml文件,比如刪除一個空行,保存.問題解決
5.看下mapper的XML配置路徑是否正確
如果全部檢查了一遍,還發現沒有問題,最好看下自己的配置文件,那時候很有可能是配置少了掃描mapper的東西:
在創建SqlSessionFactory的時候,加了以下配置:
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
sqlSessionFactoryBean.setTypeAliasesPackage("com.test.maper");
而且注意sqlSessionFactoryBean.setTypeAliasesPackage參數不支持通配符*,如果有多個包可以通過","等分割
如果需要加載依賴傳遞過來的jar包中的mapper目錄下的xml,classpath:mapper/*.xml 修改為classpath*:mapper/*.xml