发布于2026-07-12 阅读(0)
扫一扫,手机访问
先直接说结论,这个问题其实藏得很隐蔽:

数据库版本没配对——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.
控制台立刻炸出一大堆异常:
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里显式声明依赖版本,是最容易忽视却最该养成的好习惯。**
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8