天天看點

Mybatis在idea中錯誤:Invalid bound statement (not found)

學習mybatis的過程中,測試mapper自動代理的時候一直出錯,在eclipse中可以正常運作,而同樣的代碼在idea中卻無法成功。雖然可以繼續調試,但心裡總是糾結原因。百度了好久,終于找到一個合适的原因。參考:http://blog.csdn.net/z69183787/article/details/48933481;

原因:(參考:http://www.linuxidc.com/Linux/2015-06/118877.htm)

IDEA的maven項目中,預設源代碼目錄下的xml等資源檔案并不會在編譯的時候一塊打包進classes檔案夾,而是直接舍棄掉。

如果使用的是Eclipse,Eclipse的src目錄下的xml等資源檔案在編譯的時候會自動打包進輸出到classes檔案夾。Hibernate和Spring有時會将配置檔案放置在src目錄下,編譯後要一塊打包進classes檔案夾,是以存在着需要将xml等資源檔案放置在源代碼目錄下的需求。

解決:

方法1:将xml或properties等配置檔案放到resource下,并修改擷取配置檔案的代碼,比如注冊mapper.xml的位置等;

方法2:在maven中添加過濾:

我采用mybatis的自動代理設定,将mapper檔案和xml檔案同名同包下,并在sqlMap.xml(mybatis-config.xml)中配置mapper自動注冊掃描包:

測試通過,解決了心頭的疙瘩。

  

唯有不斷學習方能改變!

-- <b>Ryan Miao</b>