首页 > 其他分享 >SpringBoot:Failed to obtain JDBC Connection解决方案

SpringBoot:Failed to obtain JDBC Connection解决方案

时间:2024-11-01 14:16:16浏览次数:7  
标签:mapper JDBC java SpringBoot 文件 obtain class mysql yml

在第一次给自己的SpringBoot链接mysql的时候会出现很多问题

可能的问题和解决方案

本地的mysql没办法用root登陆

这个一般是因为mysql在初始的时候默认root角色不能用密码登陆的原因
可以用

sudo mysql

先用最高权限进入mysql然后查看一下root的信息

SELECT User, Host, plugin FROM mysql.user;

如果输出

+------+-----------+-------------+
| User | Host      | plugin      |
+------+-----------+-------------+
| root | localhost | auth_socket |
+------+-----------+-------------+

plugin 是 auth_socket,可以通过以下命令将其更改为使用密码认证:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';

然后刷新一下权限

FLUSH PRIVILEGES;

退出

exit

再重新尝试用密码登陆

mysql -u root -p

应该就可以了

mysql链接的上idea但是链接不上项目

项目文件格式

先检查一下自己的项目文件中是否缺少了什么必要的文件

.
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── tutoring
│   │   │           ├── auth
│   │   │           │   ├── controller
│   │   │           │   ├── mapper
│   │   │           │   │   └── UserMapper.java
│   │   │           │   └── service
│   │   │           │       └── UserService.java
│   │   │           └── demo
│   │   │               ├── controller
│   │   │               │   └── HelloController.java
│   │   │               ├── entity
│   │   │               │   └── Users.java
│   │   │               └── TutoringSystemApplication.java
│   │   └── resources
│   │       ├── application.yml
│   │       ├── mapper
│   │       │   └── UserMapper.xml
│   │       ├── static
│   │       └── templates
│   └── test
│       ├── java
│       │   └── UserTest.java
│       └── resources
│           └── application.yml
└── target
    ├── classes
    │   ├── application.yml
    │   ├── com
    │   │   └── tutoring
    │   │       ├── auth
    │   │       │   ├── mapper
    │   │       │   │   └── UserMapper.class
    │   │       │   └── service
    │   │       │       └── UserService.class
    │   │       └── demo
    │   │           ├── controller
    │   │           │   └── HelloController.class
    │   │           ├── entity
    │   │           │   └── Users.class
    │   │           └── TutoringSystemApplication.class
    │   └── mapper
    │       └── UserMapper.xml
    ├── generated-sources
    │   └── annotations
    ├── generated-test-sources
    │   └── test-annotations
    ├── maven-archiver
    │   └── pom.properties
    ├── maven-status
    │   └── maven-compiler-plugin
    │       ├── compile
    │       │   └── default-compile
    │       │       ├── createdFiles.lst
    │       │       └── inputFiles.lst
    │       └── testCompile
    │           └── default-testCompile
    │               ├── createdFiles.lst
    │               └── inputFiles.lst
    ├── StudentTutoringPlatform-1.0-SNAPSHOT.jar
    ├── StudentTutoringPlatform-1.0-SNAPSHOT.jar.original
    ├── surefire-reports
    │   ├── TEST-UserTest.xml
    │   └── UserTest.txt
    └── test-classes
        ├── application.yml
        └── UserTest.class

这个是我自己的项目tree可以作为参考,一般我们会在test里面测试数据库的连接,test里面的resource文件一定要有配置文件application.yml,可以根据你自己想要测试的内容写进去也可以直接复制总项目的application.yml粘贴过去

test的application.yml的格式问题

  • 记得一定要检查自己的yml格式,如果password的密码忘记加双引号最好加上,这可以避免后面出现的错误。
  • 记得一定要检查自己的yml里的url时区是否配置是准确的,这个会直接影响到数据库的连接,要看自己的mysql数据库中的时区是否匹配的上。
  • 如果不确定的话直接把url里面的时区删去就好了,一般不会出现什么问题。
  • 检查yml里的mybatis的配置
mybatis:
  mapper-locations: classpath:mapper/*.xml   # MyBatis的Mapper XML文件位置
  type-aliases-package: com.tutoring.demo.entity  # 实体类所在的包

记得要配置完整并且准确文件位置

启动文件的问题

启动文件Application.java文件中,确定能够扫描到项目中所需要的文件

@SpringBootApplication(scanBasePackages = {"com.tutoring.auth", "com.tutoring.demo"})

也要能够扫描到需要使用的mapper文件

@MapperScan("com.tutoring.auth.mapper")

注意:这里的@MapperScan的效果和@Mapper的效果是差不多的,只是前者更加适合mapper文件比较多的情况,而且不容易扫描漏,@Mapper可能会让项目扫描不到

Test文件的问题

该有的注释不能缺少

@RunWith(SpringRunner.class)    // 测试需要 Spring 上下文的支持的时候可以用
@SpringBootTest(classes = TutoringSystemApplication.class)
@ContextConfiguration(locations = {"classpath:mapper/*.xml"})

当这些都没有问题的时候

尝试用docker来启动mysql,记得把本地的mysql删除干净了。
docker启动的mysql环境干净不容易受到其他环境的因素影响可以避免很多问题。

先编写一个docker-compose.yml文件
version: "3"

services:
  mysql:
    image: mysql:8.0.39
    container_name: mysql8
    environment:
      - MYSQL_ROOT_PASSWORD=13528815361z
      - TZ=Asiz/Shanghai
    ports:
      - "3306:3306"
    restart: on-failure

记得下好docker,和docker-compose,具体的下载这里就不赘述了

找到刚刚的文件所在的文件

打开终端进入到刚刚文件所在的地方

docker-compose up -d

如果发现镜像拉失败了可以在CSDN上搜索目前可以用的镜像源进行配置就好了。
启动后可以用

docker ps

来查看现在正在运行的容器,这样就启动好了,最后把这个数据库配置到项目中就可以了
如果还有什么问题欢迎在底下评论区评论喔!

标签:mapper,JDBC,java,SpringBoot,文件,obtain,class,mysql,yml
From: https://blog.csdn.net/doy04114/article/details/143428060

相关文章

  • SpringBoot抗疫物资管理:技术与策略
    第五章系统功能实现5.1管理员登录管理员登录,通过填写用户名、密码、角色等信息,输入完成后选择登录即可进入抗疫物资管理系统,如图5-1所示。5.2管理员功能实现图5-1管理员登录界面图5.2.1用户管理管理员对用户管理获取用户名、用户姓名、头像、性别、年龄、手机号码......
  • 抗疫物资管理:SpringBoot技术革新
    第六章系统测试软件测试它是对做完一个系统进行最后的一项工作,因为我们在做系统的时候,在进行编码以后可以开始对软件进行测试,在测试当中我们可以找出这个软件的错误与缺陷,这样我们可以及时处理,不影响后期正常的使用,同时也方便我们在后期使用过程中出现的问题容易去找出。......
  • 基于SpringBoot的在线考试系统
    引言  在信息化教育的浪潮中,在线考试系统成为了提高考试效率和优化资源配置的重要工具。传统的纸质考试流程不仅需要大量人力物力,还存在着批阅时间长、成绩分析困难等问题,难以满足快速发展的教育需求。本文介绍了一个基于SpringBoot+Vue+MySQL+MyBatis实现的在线......
  • 【SpringBoot】Jedis和Lettuce的区别
    Springboot整合Lettucespringboot2.0版本后,spring-boot-starter-data-redis提供了Lettuce代替Jedis。<!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId......
  • SpringBoot抗疫物资调配系统开发
    第1章概述1.1研究背景随着现代网络技术发展,对于抗疫物资管理系统现在正处于网络发展的阶段,所以对它的要求也是比较严格的,要从这个系统的功能和用户实际需求来进行对系统制定开发的发展方式,依靠网络技术的的快速发展和现代通讯技术的结合为用户带来方便,可以方便管理员网......
  • 基于SpringBoot的抗疫物资智能管理平台
    第1章概述1.1研究背景随着现代网络技术发展,对于抗疫物资管理系统现在正处于网络发展的阶段,所以对它的要求也是比较严格的,要从这个系统的功能和用户实际需求来进行对系统制定开发的发展方式,依靠网络技术的的快速发展和现代通讯技术的结合为用户带来方便,可以方便管理员网......
  • SpringBoot项目集成MinIO
    一、MinIO的下载安装以及基本使用1.下载地址:https://dl.min.io/server/minio/release/windows-amd64/minio.exe2.下载好后需要手动创建data文件夹用于存储MinIO中的数据 3.键入cmd 4.设置MinIO的一些变量(第一次启动需要配置)setMINIO_ROOT_USER=adminsetMINIO_ROOT_P......
  • Springboot计算机毕业设计高速公路联网收费系统13z1s
    Springboot计算机毕业设计高速公路联网收费系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,业务员,收费路段,收费类型,缴费信息开题报告内容一、项目背景随着高速公路网络的不断扩展和交......
  • Springboot计算机毕业设计高校仪器管理系统zr0a9
    Springboot计算机毕业设计高校仪器管理系统zr0a9本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,仪器类型,仪器信息,仪器借用,仪器归还,学院,仪器报修,仪器维修,仪器报废开题报告内容一、选题......
  • Springboot计算机毕业设计工业大学医务室管理系统n2t8c
    Springboot计算机毕业设计工业大学医务室管理系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:学生,教师,科室名称,医生,预约信息,取消预约,开药信息,缴费信息,药品信息,药品入库,药品出库,出诊......