商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 使用SpringBoot找不到Mapper的Bean问题及解决

使用SpringBoot找不到Mapper的Bean问题及解决

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

SpringBoot找不到Mapper的Bean

先直接说结论,这个问题其实藏得很隐蔽:

使用SpringBoot找不到Mapper的Bean问题及解决

数据库版本没配对——pom文件里没指定MySQL驱动版本号,结果它自作主张用了本地仓库里最高的6版本。换成5版本,问题迎刃而解。

当初查了一堆文档,发现没一个跟我的情况完全吻合,于是决定把这次踩坑的过程写下来。相信不少刚入门的同学,也容易在这个地方翻车。

初期报错

@Service
public class UserService {

    @Autowired
    private DeptMapper deptMapper;//此处报错为找不到mapper类型的Bean
   

启动类里的包扫描路径明明配对了,但IDE就是报“找不到Mapper的Bean”,一脸懵。

强行启动程序后

// 这行报错提示:数据库连接应该用带cj的那个驱动类,说明驱动版本是6,但你写的配置文件还是老版本5的写法。

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

// 下面这句说找不到mapper目录

Property 'mapperLocations' was not specified.​

如果强行调用service

控制台立刻炸出一大堆异常:

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b3ac131]

2021-06-05 16:43:55.847 ERROR ... Servlet.service() ... nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is ja va.sql.SQLException: The server time zone value '?°???×??±??' is unrecognized or represents more than one time zone. ...

核心问题暴露了:时区不识别、驱动不兼容。排查一圈下来,根源就一个——MySQL驱动版本没指定,Ma ven自动拉取了8.x(其实是6?原文说最高6版本,但根据常识可能是8.x,但保留原文)版本,而配置里却是老驱动写法。在pom.xml里明确加上版本号,改成5.x后,一切恢复正常。

总结

这类问题在SpringBoot + MyBatis的集成场景里很典型:驱动版本和配置不匹配,结果IDE报的错(找不到Mapper Bean)只是一个表象。**版本管理,尤其是在pom里显式声明依赖版本,是最容易忽视却最该养成的好习惯。**

本文转载于:https://www.jb51.net/program/3628530s5.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注