mybatis中dao接口與mapper配置文件在做映射綁定的時候出現問題


Caused by

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

說明

一般的原因是Mapper interface和xml文件的定義對應不上,需要檢查包名,namespace,函數名稱等能否對應上,需要比較細致的對比,我經常就是寫錯了一兩個字母搞的很長時間找不到錯誤

解決一:

按以下步驟一一執行:

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

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

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

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

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

一般來說到此就可以排除錯誤了

解決二:

說明:

檢查調用的 Mapper 接口時,發現在目標文件中沒有找到 Mapper 映射的配置文件,在項目的 target 目標文件中可以看到,與接口對應的 Mapper 文件未加載,所以在程序啟動時,就找不到對應的映射文件,導致的這個錯誤。

在 pom 配置文件中鍵入 節點,並指明資源類型,這樣在程序啟動時,就可以正確加載配置文件了:

<!--在build中配置resources,來防止我們資源導出失敗的問題-->
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>


免責聲明!

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



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