Invalid bound statement (not found)錯誤


都對着,為什么會報這個錯呢,mapper也拿到了,為什么查詢時出錯呢,最后看target里編譯的文件發現少了mapping,xml沒編譯過去。


 

我的目錄結構:dao層都編譯過去了,但mapper.xml沒有,那就是編譯沒包含進去

    

解決方法:pom文件里加上就好了。(然而並沒有)

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include> </includes> </resource>
        </resources>
    </build>

 


 

    好高興的看到target里有了xml文件,但是啟動還是報錯了,Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/classpath*:com/wskt/module/*/dao/mapping/**Mapper.xml]

原因:

  

這樣一個流程調下去,路徑沒有得到解析,所以找不到,
如果在配置類里就可以:
 @Bean
    @ConfigurationProperties(prefix = "mybatis-plus")
    public SqlSessionFactoryBean sqlSessionFactory() throws IOException {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("com/wskt/module/*/dao/mapping/**Mapper.xml"));
        sqlSessionFactoryBean.setDataSource(dynamicDataSource());
        return sqlSessionFactoryBean;
    }

原因找到了,就看怎么指定PathMatchingResourcePatternResolver

 


免責聲明!

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



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