maven导出异常:MapperRegistry、Mapper.xml、mybatis-config.xml

2023-10-22 12:50

本文主要是介绍maven导出异常:MapperRegistry、Mapper.xml、mybatis-config.xml,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 错误一

1.1 错误信息

org.apache.ibatis.binding.BindingException: Type interface com.zy.dao.UserDao is not known to the MapperRegistry.

1.2 原因分析

没有Mybatis的核心配置文件Mybatis-config.xml中注册新建的Mapper

1.3 解决方式

在Mybatis的配置文件Mybatis-config.xml中注册新建的UserMapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--Mybatis核心配置文件-->
<configuration><environments default="development"><!-- 开发库--><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url"value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;characterEncoding=UTF-8&amp;serverTimeZone=GMT"/><property name="username" value="root"/><property name="password" value="mysql123"/></dataSource></environment></environments><!--定义好的Mapper要在mybatis配置文件中注册,不然它找不到--><mappers><mapper resource="com/zy/dao/UserMapper.xml"/></mappers>
</configuration>

2. 错误二

2.1 错误信息

The error may exist in com/zy/dao/UserMapper.xml
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/zy/dao/UserMapper.xml

2.2 原因分析

Mybatis在解析Mapper映射时没找到我们刚才配置的映射。去代码编译生成的target中找果然没找到。
在这里插入图片描述
什么原因呢?其实是maven在项目启动构建的时候默认是不支持打包我们自建的xml或者properties配置文件的。

2.3 解决方案

就是在项目的pom.xml配置文件中添加maven在build打包时搜索的文件路径和支持的文件格式

<build>
<!-- 在build中添加resources节点,来防止我们资源导出失败的问题 -->
<resources><resource><directory>src/main/resources</directory><excludes><exclude>**/*.properties</exclude><exclude>**/*.xml</exclude></excludes><filtering>false</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource>
</resources>
</build>

3. 错误三

3.1 错误信息(未解决)

Could not find resource mybatis-config.xml

3.2 原因分析

通过观察可以发现,在我们向pom.xml配置文件中添加打包时搜索的文件范围和支持的文件格式之前,在打包时是会把我们的mybatis-config.xml配置文件打包到target目录下的,此时的报错是找不到mapper.xml,在添加了build-resources配置之后,打包了mapper.xml,但又缺少了mybatis-comfig.xml。所以问题就是我们添加的build-resources配置有问题,上面的build-resources配置中src/main/resources是说在打包时要打包src/main/resources目录下的内容,而通过刚才的现象,其实maven打包时默认就是会把src/main/resources目录下的文件打包到target目录的,所以这个配置就是多余的。基于这个推理,就尝试注释了pom.xml中src/main/resources的配置,运行之后发现就没有报错了,在打包目录target下mybatis-config.xml和UserMapper.xml都有了

3.3 解决方案

注释掉pom.xml配置中duild-resources中的src/main/resources配置
注意:注释掉上面的配置后一定要clear原有的maven打包目录,重启idea,目的就是清除旧配置的缓存

<build><!-- 在build中添加resources节点,来防止我们资源导出失败的问题 --><resources><!--<resource>--><!--<directory>src/main/resources</directory>--><!--<excludes>--><!--<exclude>**/*.properties</exclude>--><!--<exclude>**/*.xml</exclude>--><!--</excludes>--><!--<filtering>false</filtering>--><!--</resource>--><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>

这个问题几天后打开IDEA重新运行之后又出现了,最终手动把mybatis-config.xml放到target/classes目录下(浪费的时间已经太多了)。所以上的方法还是不行。有找到的方法的兄弟可以评论告知我,感谢!!!

这篇关于maven导出异常:MapperRegistry、Mapper.xml、mybatis-config.xml的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261587

相关文章

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是