Mybatis报BindingException:Invalid bound statement (not found)异常
创始人
2025-05-30 08:55:43

一、前言

本文的mybatis是与springboot整合时出现的异常,若使用的不是基于springboot,解决思路也大体一样的。

二、从整合mybatis的三个步骤排查问题

但在这之前,我们先要知道整合mybatis的三个重要的工作,如此才能排查,且往下看。

2.1 pom.xml配置**Mapper.xml文件的构建路径

我们打开pom文件如下:

 src/main/javafalse**/*.xmlsrc/main/resourcesfalse***/*.xml

这部分代码的作用是指定需要编译到taget目录下的资源文件。我们的程序运行,都是执行编译好的taget目录下的内容,若taget里找不到xml文件资源就会报错Invalid bound statement (not found)。

每个人的项目配置都可能有些区别,但在这里我们只需要关注标签即可。还有对于不同的项目,xml的存放位置也可能不同,有的存在于src/main/java代码下,有的存在于src/main/resources。

**/*.xml
这行代码是用于构建存在于src/main/java代码中的xml文件。


**/
.xml
这行代码是用于构建存在于src/main/resources代码中的所有文件。

上述,我们可以排查第一个可能抛出Invalid bound statement (not found)异常的情况,我们可以通过查看编译好的taget目录,如下:

情况一:

原代码文件目录:
在这里插入图片描述

编译失败的情况:
在这里插入图片描述

编译成功的情况:
在这里插入图片描述
情况二:
源代码文件目录:
在这里插入图片描述

编译失败:
在这里插入图片描述

编译成功:
在这里插入图片描述

有时,一直编译不成功,那就将taget重新删除,再编译。

2.2 配置mapper类的包扫描路径

这个步骤与Invalid bound statement (not found)异常无关,但是它也是整合mybatis重要的步骤之一,这里也说明一下,有两种方式实现,可根据自己的项目情况使用。(两者择其一)

通过注解的方式扫描:
在这里插入图片描述

通过配置类方式扫描:
在这里插入图片描述

这个步骤的目的是将我们定义的mapper类装配到我们的ioc容器中。

若没有扫描,启动时就会直接报找不到mapper的错误,无法运行项目。

2.3 application.yml文件中配置**Mapper.xml文件的扫描路径

值得一说的是,这一步骤的扫描是建立在步骤一的基础之上的,若编译好的taget目录都没有目标文件,那这一步骤就更不用说了。

一:

这里的扫描路径配置,还需要注意自己的项目使用的原始mybatis还是mybatis-plus,它们的配置也有区别的,如下:

原始mybatis:

mybatis:mapper-locations: classpath:/cn/anycase/demo/mapper/xml/*Mapper.xml

mybatis-plus:

mybatis-plus:mapper-locations: classpath:cn/anycase/demo/mapper/xml/*.xml

本例用的是mybatis-plus:
在这里插入图片描述

二:
使用mybatis-plus,有时可以省略这个扫描路径的配置,所以我们看到的有些项目少了这个配置,但它并没有错,且能正常运行。(原始mybatis是否也可以,本人未做相关测试,有知道的评论区可以说一声)
在这里插入图片描述

三:
还有一个需要注意的点,前面步骤一说了,mapper.xml文件可能存在于src/main/java代码中,或存在于src/main/resources资源中,因此我们的配置路径也有所不同,如下:
在这里插入图片描述

Invalid bound statement (not found)这个异常,在常规下,通过上述的三个步骤可以百分百解决。但我们都知道,工作中出总会出现各种奇葩异常。下面介绍,且往下看。

未完待续…晚点补充太累了。

三、非常规的Invalid bound statement (not found)异常

3.1 文件名导致的异常

3.2 使用了自定义SqlSessionFactory导致的异常

相关内容

热门资讯

万亿稳定币市场开启:从概念炒作... 文|恒心来源|博望财经数字货币概念港股又迎来利好消息。据《金融界》等多家媒体报道,中国香港特别行政区...
北交所打新持续火热,新三板公司... 新京报贝壳财经讯(记者黄鑫宇)中签率0.17%、0.04%、0.03%……今年以来北交所新股申购行情...
增长53%!1至4月雄安民营企... 河北日报客户端讯(康晓博、王敏)从雄安海关获悉,今年1至4月,雄安新区进出口总值14.7亿元,同比增...
深圳华大智造科技股份有限公司关... 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、...
金价狂飙,金表也不好卖了 泡泡玛特、老铺黄金、蜜雪冰城股价屡创新高,被港股市场称为“新消费三姐妹”。与它们有着异曲同工之妙的金...
汉口银行拟吸收业绩下滑资产,谋... 文 | 刘振涛谋求IPO的汉口银行,拟吸收合并村镇银行,谋划异地扩张。近日,汉口银行发布公告,将在6...
大连银行迎新帅 能否走出“消失... “ 过去十年,大连银行业绩可谓是原地踏步,2018年到2023年,净利润更是六连降。去年,大连银行结...
雷军凶猛,兵临董明珠城下 雷军... 家电大战,全面开打。文 | 华商韬略 东木褚小米的大家电业务爆发了,营收首次突破1000亿大关。去年...
财报里的十大跨境巨头:出海增长... 作者 | 唐飞编辑 | 谭格2024年的跨境电商江湖,正经历着前所未有的冰火两重天。一边是安克创新靠...
A股、港股云计算概念双双走强,... 6月5日,三大指数集体高开,盘中创业板指走高,港股方面,恒生科技指数涨幅走阔。A股、港股云计算概念双...
财报解读|蔚来一季度营收增长2... 21世纪经济报道记者 郑植文 上海报道6月3日,蔚来汽车发布了2025年第一季度财报。数据显示,20...
广发基金王明旭:面对市场逆风,... (来源:资事堂)过去五年里,我们对话了数百名基金经理,广发基金王明旭无疑是极具特点且与众不同的。第一...
小商品城股价创历史新高 小商品... 6月5日,小商品城股价振荡上扬,最高涨至18.99元/股,创下历史新高。截至记者发稿,公司市值达10...
张裕A被调出深证成指,总经理孙... 瑞财经 刘治颖 6月3日,深交所发布公告称,将于6月16日对深证成指、创业板指、深证100等指数实施...
信音电子:6月4日融资买入26... 证券之星消息,6月4日,信音电子(301329)融资买入268.8万元,融资偿还146.89万元,融...
李斌:蔚来正在走出最低谷,二季... 成立11年,蔚来遭遇多次起伏。 2019年时,蔚来靠外部融资成功复活;而今年一季度,在外部唱衰之下,...
海科新源:6月4日融资买入38... 证券之星消息,6月4日,海科新源(301292)融资买入381.85万元,融资偿还265.17万元,...
长安、东风重组中止 兵装集团汽... 经观要闻 经过116天的磋商与谈判之后,两大汽车央企东风与长安的重组计划中止。 长安汽车(0006...
“苏超”引爆A股足球概念持续狂... 6月5日早盘,足球概念再度走强,截至发稿,金陵体育、共创草坪涨停,星辉娱乐涨超9%,探路者、康力源、...
人工智能产业迎政策利好,恒生互... 6月5日早盘,港股集体走强。截至发稿,恒生互联网科技业指数涨2.38%,微盟集团涨超6%,快手-W、...
商业航天概念股爆发,超捷股份超... 6月5日,商业航天概念股爆发,超捷股份超逾15%,天银机电、上海瀚讯、航宇微涨逾3%。
「开盘」A股三大股指集体小幅高... A股三大股指6月5日集体小幅高开。其中,沪指涨0.06%报3378.22点,深成指涨0.08%报10...
长安与东风不再合并,兵器装备集... 红星资本局6月5日消息,今日早间,长安汽车(000625.SZ)、中光学(002189.SZ)、湖南...
CRO概念股走低,金凯生科跌逾... 6月5日,CRO概念股走低,金凯生科跌逾8%,鸿博医药、泰格医药、成都先导、昭衍新药跌逾2%。
体育概念再度活跃,共创草坪四连... 6月5日,体育概念再度活跃,共创草坪四连板,冰山冷热、元隆雅图快速拉升涨停,金陵体育冲击涨停。
6月5日投资避雷针:7天5板人... 导读:财联社6月5日投资避雷针,近日,A股及海外市场潜在风险事件如下。国内经济信息方面包括:1)本周...
楼市已经触底,明年会回暖吗?国... 我最近一直在研究房地产市场,发现2024年的数据确实挺吓人的: 全国新建商品房销售面积同比下降12....
百亿市值大族数控冲击IPO:5... 瑞财经 王敏 5月30日,据港交所官网,深圳市大族数控科技股份有限公司(以下简称“大族数控”)向港交...
李在明上台,韩国转机将至? 李... 6月4日上午11时许,韩国新任总统李在明在国会正式宣誓就职,开启五年任期。李在明在就职讲话中表示,将...