1. 程式人生 > >[MyBatis]詭異的Invalid bound statement (not found)錯誤

[MyBatis]詭異的Invalid bound statement (not found)錯誤

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

自從開始使用Maven管理專案,最近在配置MyBatis的Mapper,在Eclipse上除錯時都是正常的,但是最近把專案遷移到 IntelliJ IDEA 上後發現不管是直接用Jetty除錯,還是打成war釋出均報錯。

根據錯誤提示初步判斷是配置的問題,檢查的Spring和MyBatis所有配置檔案,甚至在SVN上回退了程式碼,可問題均沒有解決;無奈暫時換回了Eclipse繼續Coding…

一直懷疑是遷移至IntelliJ IDEA造成的問題,於是自己新建了個Maven專案,除錯MyBatis;可以依舊報錯…無奈直接打包成War打算手動釋出試試…還是不行。無奈解壓了War包,發現包結構極為亂套….

在仔細檢查了之前的專案後,發現Mapper.xml根本就沒打包進去。媽蛋,竟然犯了一個弱智錯誤!

IDEA 專案結構

根本就沒打包到Spring配置的位置。

IDEA 專案結構

Mapper檔案應該放在Resources資料夾中!這個我竟然忘了!重新調整結構,問題順利解決…

 

 

其他原因導致此問題解決參考:

1.

1 < mapper namespace = "me.tspace.pm.dao.UserDao" >

 mapper的namespace寫的不對!!!注意系修改。

2.UserDao的方法在UserDao.xml中沒有,然後執行UserDao的方法會報此

3. UserDao的方法返回值是List<User>,而select元素沒有正確配置ResultMap,或者只配置ResultType!

4. 如果你確認沒有以上問題,請任意修改下對應的xml檔案,比如刪除一個空行,儲存.問題解決…

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述