1. 程式人生 > >maven 專案,mybatis報錯org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

maven 專案,mybatis報錯org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

maven管理的spring專案在打包install啟動後,mybatis報錯org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): …

  1. 錯誤描述:
    專案使用mybatis作為持久層,整體框架使用spring-boot搭建,啟動正常,在查詢資料庫時,就會報錯,經過檢查mapper.xml檔案等等,發現namespace,介面方法名等等都沒有寫錯,又因為是打包後才會報錯,在打包前作測試沒有錯誤。斷定是打包後出現問題

  2. 檢查結果:
    檢查target檔案目錄下的mapper.xml檔案,竟然發現沒有xml檔案,定位錯誤(在使用maven進行模組開發時,用的mybaties,會將配置檔案放到dao層,而dao層的型別是jar,在打jar包時只會打包java檔案,會將一些mapper對映檔案或者properties檔案給過濾掉,部署的時候會報找不到mapper配置檔案等錯誤)

  3. 解決辦法,在pom檔案中新增如下配置解決

    <build>
        <resources>
            <resource>
                <directory>src/main/resources/</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.properties</include
>
<include>**/*.xml</include> <include>**/*.txt</include> <include>**/*.ico</include> </includes> </resource> <resource> <directory>
src/main/java/</directory> <filtering>false</filtering> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>