你们好,我是金金金。

在这里插入图片描述

场景

启动项目,一直报数据库连接超时:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
The error may exist in com/xuecheng/system/mapper/DictionaryMapper.java (best guess)
The error may involve com.xuecheng.system.mapper.DictionaryMapper.selectList ### The error occurred while executing a query
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

排查

数据库超时我首先想到的是不是 我数据库连接名称写错了?又或者是端口写错了?

经过反复多次观看,确实没错,到处百度也没解决问题。

解决

  • 也是无意间看项目的时候,发现了一些东西。由于我这个模块代码是从别处复制过来的,如下

在这里插入图片描述

注意看我框住的地方,就是因为这个玩意导致~

target 目录是 Maven 或者 Gradle 构建工具在构建 Java 项目时生成的输出目录。它包含编译后的字节码文件、打包的 JARWAR 文件,以及其他构建过程中生成的临时文件。

所以需要把这些之前生成的target目录都删掉,重新跑一下项目就ok了~

测试

  • 经过测试,项目成功启动~

总结

  • target 目录中的内容是编译后的字节码。当你运行项目时,JVM 会加载这些 .class 文件,而不是源代码。

  • 如果 target 目录已经存在并且内容是最新的,构建工具或 IDE 会直接使用它而不是重新编译源代码。

  • 如果你修改了源代码,但没有重新编译,target 目录中的字节码文件不会更新,导致运行时的代码与源代码不同步。

因此,如果你发现代码修改后运行结果没有变化,可能需要检查是否重新编译了项目。

  • 编写有误还请大佬指正,万分感谢。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部