idea xml文件未編譯報錯(持續更新)


org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)


  同樣,自己沒找到問題之后百度搜索方案。問題大致意思為:mybatis中dao接口與mapper配置文件在做映射綁定的時候出現問題,簡單說,就是接口與xml要么是找不到,要么是找到了卻匹配不到。

  網上解決方案:

    按以下步驟一一執行:

    1:檢查xml文件所在的package名稱是否和interface對應的package名稱一一對應

    2:檢查xml文件的namespace是否和xml文件的package名稱一一對應

    3:檢查函數名稱能否對應上

    4:去掉xml文件中的中文注釋

    5:隨意在xml文件中加一個空格或者空行然后保存

  但是我按照這個順序反復排查無果,最后發現在 src/target/classes/... 目錄下只有.java文件,沒有與之對應的xml文件,意思是xml

文件沒有編譯過來。

  

 

  解決方案:

  1,直接把對應的xxxMapper.xml復制到 src/target  的.java文件同級目錄下,

  

  2,在pom.xml文件的build中添加如下,注意<resource>寫在<resources>里面:

  

  這樣以后的xxMapper.xml文件就都會自己編譯進來,運行,成功!

 

  以上情況屬於xml文件在 src/main/java 里面得到解決,如果xml放在與java同級目錄時,如下:

 

在mybatis和hibernate得項目中,有時會把xml放在java目錄外邊,但是idea也沒有進行編譯,這時也在pom.xml文件中配置:

再運行,成功跑起來。

 

再后來,idea創建的項目沒有出現過xml未編譯情況,總結發現:

  之前創建項目使用的是idea默認的maven,如圖

  

 

 在這里我選擇自己安裝的maven,創建的項目xml都正常編譯,希望可以幫到小伙伴們脫離這個問題!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM