SpringBoot整合mybatis报错文档记录

springboot 整合mybatis常见错误 1、找不到sqlsessionfactory 原因:a、mybatis-spring-boot-starter 版本不对,高版本已经不支持自己对interface自动注入 b、spring-boot-starter-parent 版本不对 2、url加载错误 原因: org.springframework.boot.autoconfigure.jd... 阅读详情

SpringBoot整合mybatis报错文档记录

以下是自己耽搁了好些时辰整理的报错信息,望大家参考借鉴即可,本文主要以笔记的形式给自己作为参考。

1、项目的整理结构

在这里插入图片描述

在pojo设置User类,创建Dao层接口@Autowired注入创建实例并在UserDaoTest类上进行测试。

1.1 添加依赖pom文件

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

这里我的将springboot包用的是2.0.0版本,mybatis-spring-boot-starter使用的是1.3.2版本。

1.2 application.properties下的文档

# mybatis 别名扫描
mybatis.type-aliases-package=com.xaf.pojo
# mapper.xml文件位置,如果没有映射文件,请注释掉
mybatis.mapper-locations=classpath:mappers/*.xml

因为是整合mybatis且创建maven项目。这里的资源放在rsources下的mappers包。这里要切记路径与项目的实际路径保持一致。

1.3 进入Application启动类下

@SpringBootApplication
@MapperScan("com.xaf.dao")
public class Application{
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}
  1. Application启动类的位置应该是放在dao层或者service层的父包。因为Application启动只能扫描到该包及其子包中的类,否则整个启动都会有问题。
  2. 切记开启MapperScan扫描,这个注解是为了扫描到mapper.java文件或者是添加了@mapper注解的java类。

比如这里:

@Mapper
public interface UserDao {
    public List<User> findAll();
}

1.4 mapper映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xaf.dao.UserDao">
    <select id="findAll" resultType="User">
        select * from tb_user
    </select>
</mapper>

1.5 Test测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {

    @Autowired()
    private UserDao userDao;

    @Test
    public void testFindAll(){
        List<User> list = userDao.findAll();
    }
}

配置好启动类,创建好接口后便进行测试实例。调用UserDao接口中的testFindAll方法。

我自己看起来没觉得有什么错误,接下来就是分析报错。

2、报错信息

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xaf.dao.UserDao.findAll

	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:49)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
	at com.sun.proxy.$Proxy78.findAll(Unknown Source)
	at com.xaf.dao.UserDaoTest.testFindAll(UserDaoTest.java:21)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)
	at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

整体报错的反馈就是:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xaf.dao.UserDao.findAll

如果上面都没有问题但是仍然报错,报错的信息是IDEA无法找到mapper的映射文件所导致的。这里可以查看target包下验证猜想:

在这里插入图片描述

果然,我原本放在resources下的mappers下的UserDao.xml在编译的时候没有被打包到classes文件里面。

经过我个人的修改后,我这里可以查看一下项目结构:

在这里插入图片描述

大概是这样的,如果有小伙伴出现把xml放置在src\main\java,可以设置如下:

<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/ *.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

当然如果还有别的文件也可以增加<include></include>标签即可。

这样子编译后是这样子的:

在这里插入图片描述

项目运行成功!

3、总结

整合mybatis报错:

  1. 添加相关的依赖包
  2. 在启动类下设置@MapperScan(""...")或者在扫描类下添加@Mapper
  3. 启动类的路径
  4. mapper映射文件的namespace设置地址
  5. maven配置问题

以上总结的问题在此跟大家分享,感谢大家的阅读。

IDEA搭建SpringBoot项目,整合mybatis中出现的错误以及解决办法 搭建时遇见的错误以及解决办法 1、错误,连接超时。 解决方法: 点击进入IDEA的setting 搜索 HTTP Proxy 选择Auto-detect proxy settings 点击最下面的Check connection弹出如下的输入框,输入地址https://start.spring.io 点击ok。 如果successful证明连接成功,点击ok。 若是连接不成功,把该网址网页打开,... 阅读详情

相关推荐

SpringBoot3整合MyBatis报错:Property sqlSessionFactory or sqlSessionTemplate required

事情不大,本来不想单独写篇文章的,但是我有个预感,在项目中升级 Spring Boot 3 时还会有其它问题。不知道 Spring6 这次更新了多少东西,连 TM 的MyBatis、MyBatis-Plus 这种常用的框架都中招了。这些就慢慢整理吧,毕竟是大版本升级,难免会出现不兼容、等依赖更新的情况。确实没辙,等更新呗。如果这篇文章浪费了你的时间,先说声抱歉,你直接关掉网页就好。

m0_73311735的博客 3561

Springboot整合Mybatis案例以及过程中常见报错分析

本篇文章是Springboot整合mybatis案例,并且做了简单的测试

CJPSR的博客 1206

国产操作系统替换方案:3个避坑指南

坑核心误区避坑核心原则关键动作坑一:选型只看信创信创目录=唯一标准兼容性优先,信创是约束三维评估(兼容性+信创+生态),分场景选型坑二:迁移只管能跑功能能跑=迁移成功性能确认+运维回归适配-压测-回归三阶段,基线对比坑三:不防二次迁移解决停服=完成任务一步到位,两级兼容信创路线优先,双轨制发布,终态规划。

weixin_43524706的博客 299

springboot+ mybatis项目搭建错误大全

Cannot instantiate interface org.springframework.context.ApplicationContextInitializer : org.springframework.boot.context.ConfigurationWarningsApplicationContextInitializer 原因 配置pom.xml 把其他的删干净 如 spring 项目中有两个boot的版本,一个高版本一个低版本,导致冲突. 解决方法 查看自己项目中导入的依赖里,是

qq_43886548的博客 6130

国产麒麟系统PXE安装-UEFI引导

注意: 适用uefi引导 适用x86_64架构 一键部署脚本扣我 1.上传ISO到PXE服务器,拷贝ISO文件 # mkdir /kylin_iso # mount -o loop Kylin-Server-10-SP1-Release-Build04-20200711-x86_64.iso /kylin_iso/ 2.配置http,获取安装源 # yum -y install httpd # mkdir /var/www/html/{ks,kylin} # 注意一定是"/kylin_iso/

河静 5055

DXF转G代码是圆弧的方向如何确定?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1187

Dependency ‘org.mybatis.spring.bootmybatis-spring-boot-starter‘ not found

Dependency ‘org.mybatis.spring.boot:mybatis-spring-boot-starter:’ not found 整合mybatis时,添加的依赖一直飘红 给出答主的解决方法 https://blog.youkuaiyun.com/qq_45570838/article/details/105471518

m0_59092234的博客 3660

优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

MIPI的协议我就不详细介绍了(可以查看<下面的二维码>),这里和开源方案比较接近的即使FPGA实现MIPI物理层(DPHY)中电气属性相关的几种方案:MIPI DPHY RX...

OpenFPGA的博客 4457

SpringBoot3整合MyBatis报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

升级SpringBoot3时遇到的问题。

程序员有故事 4万+

基于STM32单片机设计的红外测温仪(带人脸检测)_34

当前设计的这款红外非接触式测温仪由测温硬件+上位机软件组合而成,主要用在地铁、车站入口等地方,可以准确识别人脸进行测温,如果有人温度超标会进行语音提示并且保存当前人脸照片。

8769

ABAP CDS 货币与计量单位换算全攻略:CURRENCY_CONVERSION、UNIT_CONVERSION 与 DECIMAL_SHIFT 的工程化实践

本文介绍了SAP ABAP CDS中三种单位/货币换算函数(UNIT_CONVERSION、CURRENCY_CONVERSION、DECIMAL_SHIFT)的实战应用。重点包括:各函数的职责边界与适用场景,参数配置与精度控制策略,以及基于标准表(T006、TCUR*等)的换算规则来源。文章提供可运行的CDS示例,涵盖单位换算(如MI转KM)、货币汇率转换(含小数位处理)及纯小数位调整等典型场景,并强调生产环境中需注意的精度差异与审计风险控制。适用于企业报表、成本核算等需要统一口径的业务场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1554

Spring Boot 整合 MyBatis(过程及报错解决)

引言 最近在学习Spring Boot,在整合MyBatis进行数据访问,报过多次错,踩了很多坑,在此记录一下。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML或注解来配置和映射原生信息,将接口和 Java 的POJOs(Plain Ordinary Java Object,普通的Java对象)映射成数据库中的记录。 整合过程 导入依赖 pom.xml文件如下: <?xml version="1.0" encoding="U

qq_39181839的博客 3962

AMBA-CHI协议详解(二)

读事务,写事务,原子事务,Stash事务,Dataless事务,DVM事务,Retry事务。

Crazzy_M的博客 6652

报错记录_SpringBoot整合MyBatis

在使用SpringBoot整合MyBatis时出现的报错 最开始以为是Mapper接口、xml、Controller、Service其中一个写错了 最后看到了这个: Property 'configuration' and 'configLocation' can not specified with together 结果发现是因为配置yml时同时使用了config-location与configuration(具体原因尚不清楚) 具体如下: mybatis: config-loca..

qq_62636613的博客 898

2025年7月5日全国青少年信息素养大赛Python编程初中组复赛真题+答案解析

2025年7月5日全国青少年信息素养大赛Python编程初中组复赛真题+答案解析

伶俐角少儿编程 466

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

springboot整合mybatis报错

springboot整合mybatis报错 项目结构 pom.xml <dependencies> <!--spring-web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&gt

qq_43445045的博客 1097

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

狂神说SpringBoot09:整合MyBatis

狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习。未经作者授权,禁止转载整合MyBatis官方文档:http://myb...

狂神说 6403

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

springboot整合mybatis配置

springboot整合mybatis配置 本文只说明在springboot中配置mybatis,不涉及springboot的创建。 首先pom依赖 &lt;dependency&gt; &lt;groupId&gt;mysql&lt;/groupId&gt; &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt; &lt;scop...

acq的博客 4万+

springboot+mybatis+postgresql整合记录

1.使用idea中的spring Initializr创建spring boot+mybaits项目 2.在pom文件中添加postgresql的maven管理.一开始用的从网上找的 <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</ar...

wangzhenpeng233的博客 4067

SpringBoot 整合MyBatis

SpringBoot 整合MyBatis

小钟不想敲代码 4800

springboot整合Mybatis-Plus候报错java.lang.IllegalArgumentException: Property ‘sqlSessionFactory‘

转自:https://www.cnblogs.com/mkl34367803/p/11218082.html 今天闲来无事,学习springboot整合mybatis,在bilibili看视频学的,视频中在dao层的interface上面加上org.apache.ibatis.annotations.Mapper注解就可以了,但是我一直报错。这个应该是springboot整合mybatis的一个bug(新版的) Description: Field userDao in com.yuanq

weixin_42469135的博客 2495

SpringBoot 整合 MyBatis 使用

这里写目录标题整合MyBatis整合测试我们增加一个员工类再测试下,为之后做准备参考目录 整合MyBatis 官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/ Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter 整合测试 1、导入 MyBatis 所需要的依赖

norang的博客 861

SpringBoot整合Mybatis总结

项目整合是参考此blog进行的,使用其中的全注解方式实现的。以下列出整合过程中遇到的几个问题及解决方案: maven依赖 解决方案:参考此blog 其中,此部分概念需要了解一下 maven的pom文件中parent节点使用properties定义的属性问题 解决方案:参考此blog SpringBoot启动报错 问题1:IllegalStateException和ClassNo...

Jxinx 389

SpringBoot整合Mybatis出现的异常

https://blog.youkuaiyun.com/zhaomengxia123/article/details/98634945 文章中一.springboot+mybatis+maven+mysql+swagger结束之后 生成我所连数据库中的student,teacher,course三张表如图所示 此时我在测试类中编写如下测试 启动我本项目的启动类报错信息如下 我启动我刚才编...

zhaomengxia123的博客 924

【SpringBoot整合Mybatis】

​MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。 ​

蛋饼吧的博客 563

Java的springboot框架整合mybatis

目录 说在前面: 遇到的坑点: 认识Springboot的实体层,服务层和控制层: 实体层: 控制层: 服务层: DAO/Mapper层(访问mysql的接口,并与之.xml文件对应) 总结: 说在前面: 自从上次用完mybatis后,觉得配置起来完后方便(毕竟再也不用写原生的jdbc代码了),新生起初配置起来因为自己还不是很熟悉,出问题还得自己独自解决。但配置好后好用是真的好用,后面的工作就能省很多时间。而用springboot整合mybati...

昊月光华的博客 1918
上一篇: SpringBoot整合mybatis框架
下一篇: 关于配置远程仓库gitee无法连接配置微服务的问题
Xiao艾扶
博客等级 码龄7年 187粉丝 93原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值