首页 > 其他分享 >记录报错内容以及如何修改(mapper包下面的映射文件扫描不到)

记录报错内容以及如何修改(mapper包下面的映射文件扫描不到)

时间:2024-03-12 18:45:26浏览次数:21  
标签:xml mapper 错误 映射 文件 报错 mybatis 运行

这个错误是在使用mybatis和mapper的时候发生的,一般报这种错误都是因为配置不匹配,或者是写错了路径,或者是写的sql语句有了问题,但是我检查了很多遍都没有发现任何有关语句和路径的错误。

 排除了这些低级错误的可能后,这里会报错的原因也基本就只有一个了,那就是mapper接口和mapper.xml文件没有映射起来,没有成功。

针对这个问题:

我首先检查了xml文件里的namespace是不是和mapper的实际位置一样,检查之后发现确实没问题:

 这一步基本不会出错,因为我们都是使用插件(MybatisX)创造的文件,所以文件名字和路径是不会出问题的

同样的道理,sql语句中的select id 所输入的方法名字也是不会有错误的,因为都是插件帮我们创建的文件,我们甚至都没有自己动手打字,所以不可能出现自己输入错误的情况。 

继续找错误的原因,网上查了一下,有可能是我们运行时没有把xml文件构建进去,所以导致运行的时候找不到,我检查了一下运行时候的配置:

发现他确实在运行的时候没有扫到这个xml文件,但我确确实实在yml文件里面配置了在运行时要扫描mapper目录下的文件,真是让人费解。

虽然解决方法很简单,只需要在运行的时候手动把mapper用到的xml文件放进去就好。

话虽如此,每次运行都要手动添加xml文件有点太离谱了,所以还是有必要找一找最根本的原因是出在了哪里。

经过网上查阅资料,我发现mybatis和mybatis-plus的依赖是有冲突的,可惜我的项目根本没用到plus也没有导入他的依赖,所以原因不是这个。

终于!!在配合网上攻略检查我的配置文件时,我发现我之前写的代码有点多余,而且我不知道他们是干什么用的,这引起了我的好奇:

 询问了GPT后得知:

 

 重点来了,最后一行他说“并且不进行任何占位符替换处理”,意味着我使用 * 来扫描mapper包下面的所有文件的方法是行不通的。看来这行filter代码就是罪魁祸首。把false改成true或者直接删掉这行代码就解决了问题!!重新运行项目,发现mybatis的xml文件出现在了target目录里,完美~

 

标签:xml,mapper,错误,映射,文件,报错,mybatis,运行
From: https://www.cnblogs.com/zhanshuang/p/18068808

相关文章

  • 【CentOS】Linux 或 Windows 上实现端口映射
    一、什么端口映射?端口映射:端口映射就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。我们在内网中有一台Web服务器,但是外网中的用户是没有办法直接访问该服务器的。于是我们可......
  • node-sass生产环境编译报错
    "node-sass":"^4.12.0","sass-loader":"^8.0.2",本地和local环境正常,pre和生产环境编译报错local、pre、生产的编译环境一样,node版本都是14.16.1。拷贝本地node_modules文件夹到pre同样报错。应该是node-sass和node的版本问题,但是又找不到问题,最后没办法把node-sass换成......
  • macOS 下使用 pyenv 安装 python 2.n.p 报错,ERROR: The Python zlib extension was no
    TL;DR执行brewinstallzlib安装zlib之后,根据安装信息提示将一下三行变量exportLDFLAGS="-L/opt/homebrew/opt/zlib/lib"exportCPPFLAGS="-I/opt/homebrew/opt/zlib/include"exportPKG_CONFIG_PATH="/opt/homebrew/opt/zlib/lib/pkgconfig"加入到~/.zsh......
  • maven一些报错处理
    (1)Malformed\uxxxxencoding.报错解决使用everthing全局搜了resolver-status.properties文件,或者找到本地仓库的目录,删除掉这些文件。在window下可以使用这个方式,将以下改为clean.bat执行.仓库换为自己的仓库@echooffremcreatebyNettQunrem仓库路径setREPOSITORY......
  • 初始配置:IntelliJ Android无法运行项目并报错Error: Module not specified
    最近重拾android,想趁复试前搞一个东西出来,顺便给毕设做好准备。写代码前得让IDEA把初始的空项目在虚拟机上运行一下,看看开发环境是不是有什么问题,果然每次过一段时间重开,哪怕我上一次关闭时啥也没碰,总得出点配置上的小问题。Error:Modulenotspecified未指定模块错误,但点......
  • pycharm中使用pyplot时报错MatplotlibDeprecationWarning
    在pycharm中使用Matplotlib中的pyplot时,运行代码报错:MatplotlibDeprecationWarning:SupportforFigureCanvaseswithoutarequired_interactive_frameworkattributewasdeprecatedinMatplotlib3.6andwillberemovedtwominorreleaseslater.第一步,点击pycharm菜单......
  • 一次解决Docker内java变量原因导致执行Kafka查询消费报错经历
    引言企业内对某设备小集群进行状态巡检(包括内存、磁盘、CPU、集群状态、集群Docker内接口状态、服务状态、Kafka消费情况监控)。由于需要将状态的结果通过命令展示在命令行中,且查询命令较多,于是打算脚本解决。在写脚本时,查询内容包括了宿主机和docker内的服务都需......
  • kylin v10报错:/usr/lib64/security/pam_console.so: cannot open
    报错如下:PAMunabletodlopen(/usr/lib64/security/pam_console.so):/usr/lib64/security/pam_console.so:cannotopenshaaredobjectfile:No>PAMaddmingfaultymodule:/usr/lib64/security/pam_console.so原因分析:麒麟V10环境没有“pam_console.so”动态库。pam_......
  • 技术笔记(6)SourceTree Push到github时报错
    技术笔记(6)SourceTreePush到github时报错remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokeninstead.​即无法通过输入账号密码的方式来验证,需要使用个人token来验证。昨晚搜到了很多无效方法,搞得有点头痛了,记......
  • 算法面试通关40讲 - 哈希表/映射
    1.两数之和#include<iostream>#include<unordered_map>usingnamespacestd;classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){vector<int>indices;unordered_map<int,decltype(nums.siz......