前兩天筆者用IDEA在做springboot一個小的demo的時候,發現自己的mapper.xml文件竟然不起作用!跳出如下錯誤(捕獲錯誤的樣式是之前設置過的):
系統出現了異常,異常原因是: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.lq.springboot.mapper.CategoryMapper.findAll
出現異常的地址是:http://localhost:8080/listCategory
于是網上一頓搜索,發現可能是以下的原因所致:
一般的原因
Mapper interface和xml文件的定義對應不上,需要檢查包名,namespace,函數名稱等能否對應上。
按以下步驟一一執行:
1、檢查xml文件所在的package名稱是否和interface對應的package名稱一一對應
2、檢查xml文件的namespace是否和xml文件的package名稱一一對應
3、檢查函數名稱能否對應上
4、去掉xml文件中的中文注釋
5、隨意在xml文件中加一個空格或者空行然后保存
但是竟然都不起作用!崩潰!終于在一篇帖子里看到了想要的答案,在使用IDEA開發時,如果打包時*Mapper.xml沒有自動復制到class輸出目錄的mapper類包下,則需要在pom文件中添加mybatis加載配置文件的配置! 如下所示:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
捕獲.JPG
最后就大功告成啦!
捕獲1.JPG
由衷感謝度娘上的大佬提供的技術支持!