Mybatis:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource

简介: Mybatis:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource

Bug分析:


看错误可知,找不到mapper文件。

首先我们查看配置文件(mybatis-config.xml)路径是否写正确。


路径是没问题,配置的几种方式我也都试过了。于是将Xxxmapper.xml文件放到resource目录下,发现可以访问。


Bug思考:


就在想为什么放在dao层中写路径就访问不到了呢?

通过查看编译后的target目录,发现Java目录下没有打包后的*mapper.xml,这样我们就大致找到问题了,问题就在于为什么运行之后将mapper.xml打包不进来呢?


maven打包规则:


maven打包的时候默认打包src/main/java下的class文件,打包src/main/resources下的配置文件。

解决方案:


在pom文件的bulid节点里头增加如下子节点内容即可解决问题(在pom中添加之后一定要 reimport maven project ,让配置生效):
<!--   **.xml写在src找不到问题解决方案     -->
        <resources>
            <resource>
                <!-- directory:指定资源文件的位置 -->
                <directory>src/main/java</directory>
                <includes>
                    <!-- “**” 表示任意级目录    “*”表示任意任意文件 -->
                    <!-- mvn resources:resources :对资源做出处理,先于compile阶段  -->
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <!--  filtering:开启过滤,用指定的参数替换directory下的文件中的参数(eg. ${name}) -->
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>



Bug总结:


maven打包机制,默认会把src/main/resources下面的配置文件打包进来,src/main/java下的java文件编译打包进来。

为了解决和避免maven打包的问题,我们需要自己配置maven打包位置,一旦配置pom文件里头的resources节点,那么maven打包的时候自动打破默认的配置文件的位置,会根据我们配置的位置的配置文件


相关文章
|
23天前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
38 3
|
8天前
|
XML Java 数据库连接
Mybatis 模块拆份带来的 Mapper 扫描问题
Mybatis 模块拆份带来的 Mapper 扫描问题
14 0
|
1月前
|
SQL Java 数据库连接
mybatis动态SQL常用语法总结
MyBatis 使用 OGNL 表达式语言处理动态SQL,如 `if` 标签进行条件判断,`choose`、`when`、`otherwise` 实现多条件选择,`where`、`set` 管理SQL关键字,`trim` 提供通用修剪功能,`foreach` 遍历集合数据。`sql` 和 `include` 用于代码重用,`selectKey` 处理插入后的返回值。参数传递支持匿名、具名、列表、Map、Java Bean和JSON方式。注意SQL转义及使用合适的jdbcType映射Java类型。
50 7
|
1月前
|
SQL
自定义SQL,可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,如何自定义SQL呢?利用MyBatisPlus的Wrapper来构建Wh,在mapper方法参数中用Param注
自定义SQL,可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,如何自定义SQL呢?利用MyBatisPlus的Wrapper来构建Wh,在mapper方法参数中用Param注
|
2月前
|
SQL 安全 Java
java的SQL注入与XSS攻击
java的SQL注入与XSS攻击
67 2
|
2月前
|
SQL Java 数据库连接
深入探索MyBatis Dynamic SQL:发展、原理与应用
深入探索MyBatis Dynamic SQL:发展、原理与应用
|
1月前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
35 0
|
1月前
|
SQL 监控 Java
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
59 0
|
1月前
|
SQL Java 数据库连接
【Java】已解决java.sql.SQLRecoverableException异常
【Java】已解决java.sql.SQLRecoverableException异常
41 0
|
1月前
|
SQL Java 数据库连接
【Java】已解决java.sql.SQLTimeoutException异常
【Java】已解决java.sql.SQLTimeoutException异常
23 0