programing

드라이버 클래스 com.mysql.jdbc를 로드할 수 없습니다.드라이버 스프링

bestcode 2022. 9. 28. 00:15
반응형

드라이버 클래스 com.mysql.jdbc를 로드할 수 없습니다.드라이버 스프링

spring.freemarker.cache:false


spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=user
spring.datasource.password=pass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

driver-class-name을 지정한 경우에도 이 오류가 발생합니다.

java.displaces를 클릭합니다.InlawalStateException: 드라이버 클래스 com.mysql.jdbc를 로드할 수 없습니다.org.springframework.util의 드라이버.Assert.state(Assert.java:392)~[ spring - core - 4.2 . 1 ]org.springframework.boot.autoconfigure.jdbc에 있는 RELEASE.jar:4.2.1.RELEASE].DataSourceProperties.getDriverClassName(DataSourceProperties).java:boot)~[ spring - boot - autoconfigure - 1 . 3 . 0 ]org.springframework.boot.autoconfigure.jdbc에 있는 M5.jar:1.3.0.M5].DataSourceAutoConfiguration$NonEmbeddedConfiguration.DataSource(DataSourceAutoConfiguration).java:119)~[ spring - boot - autoconfigure - 1 . 3 . 0 ]M5.jar:1.3.0.M5]의 sun.reflect.Native Method Accessor Impl.sun.reflect에서 0(네이티브 메서드)~[na:1.8.0_60]을 호출합니다.Native Method Accessor Impl.호출(NativeMethodAccessorImpl.java:62)~[na:1.8.0_60] 。

그리고 그것은 계속된다

메이븐을을 메이븐에 .pom.xml:

) (★★★★★★★MySQL 5.6, 5.7, 8.x ★★★★★★★★★★★★★★★★★」Java >= 8

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.29</version>
</dependency>

(★★★★★★★★★★★★★★★★★★★★★★★★용MySQL <= 5.5 ★★★★★★★★★★★★★★★★★」Java <= 7 ★★★★★★★★★★★★★★★★★」JDBC < 4.2

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
</dependency>

커넥터/J 버전에 대한 자세한 내용

사용되지 않는 드라이버 클래스 이름을 사용하고 있을 수 있습니다.application.properties 파일의 속성을 업데이트하여 해결했습니다.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

다음 사항만 확인하세요.

  1. 프록시를 사용하는 경우 VPN을 사용하여 내부 서버에 접속합니다.즉, DEV/STG 서버에 액세스 하고 있는 경우는,

  2. 다음과 같이 올바른 위치에 종속성을 추가해야 합니다.

    <dependencies> <--- inside this section <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.15</version> </dependency> </dependencies>

에 없습니다.

`<build> <--- Not this section
<dependencies>
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
</dependency>

3. 다음 행을 사용할 필요가 없습니다.

`spring.datasource.driver-class-name=com.mysql.jdbc.Driver. 

spring.contextsource.url=jdbc:spring://xxxx'는 가져올 드라이버를 자동으로 인식합니다.

IDEA 및 maven을 사용하는 경우 모든 maven 프로젝트를 새로고침하는 것을 잊어버릴 수 있으며, 이로 인해 종속성에 MySQL 커넥터 jar가 없습니다.그 때문에, 애플리케이션을 실행하면, 「com.mysql.cj.jdbc」라고 하는 에러가 발생합니다.드라이버」.

여기에 이미지 설명 입력

문제의 핵심은 MySQL 드라이버 의존성이 없다는 것입니다.

다른 답변에서 개략적으로 설명한 방법 중 하나는 빌드 도구 구성에서 지정하는 것입니다.그러나 이클립스도 이와 비슷한 기능을 가지고 있다고 확신하지만, 인텔리J IDEA를 사용하고 있지 않은 경우에는 이 기능을 통해 의존성을 추가할 수도 있습니다.순서:

  1. maven 저장소에서 원하는 jar 다운로드
  2. Intelij IDEA에서 프로젝트 열기
  3. 파일 -> 프로젝트 구조 -> 라이브러리
  4. 새 프로젝트 라이브러리(왼쪽 녹색 더하기 기호)를 클릭하거나 Alt + Insert 키를 누릅니다.
  5. 자바 선택
  6. 항아리 선택
  7. [확인] 을 누릅니다.

다음과 같이 됩니다.

여기에 이미지 설명 입력

이제 방금 추가한 종속성을 사용할 수 있습니다.

IntelliJ IDEA 2017.3.4에서 테스트 완료.

이 에러의 원인에 대해 설명하겠습니다.

  • Intelij IDEA를 사용하여 몇 가지 통합 테스트를 실행하여 이 오류를 이미 여러 번 보았습니다.테스트는 실패하고 다음 메시지가 표시됩니다.Caused by: java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver. 프로젝트를 리빌드하면([Build]> [ Rebuild Project ]) 에러가 사라집니다.
  • 이 에러의 또 다른 원인은 JAR의 파손입니다.어느 대학에서 이 에러가 발생하고 있습니다(연동 테스트도 실행하려고 합니다).또한 관련 jars를 삭제한 후.m2디렉토리에서 오류가 사라졌습니다.

build.gradle

runtimeOnly 'mysql:mysql-connector-java'

application.yml

spring: 
    application:
        name: apevent
        version: 1.0
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/applicaiton

(이전처럼) 누군가 아직 답을 필요로 하는 것 같습니다.다음의 의존관계를 추가하여 해결했습니다.

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
</dependency>

저는 지금 같은 문제를 겪고 있으며, 필요한 의존관계를 제공한 후 해결했습니다.

 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
    </dependency>

조금 늦을 수도 있다는 것을 알지만, 아마 미래에서 온 사람이라면 이 대답이 도움이 될 것입니다.이 문제는 세 가지 이유로 인해 발생할 수 있습니다.

  • 잘못된 maven 또는 gradle

  • application.properties 파일의 스프링 구성이 잘못되었습니다.

  • application.properties 파일의 클래스 이름이 잘못되었습니다.

  • maven 을 사용하고 있는 경우의 트러블 슈팅을 실시하려면 , 버전명은 포함하지 말아 주세요.이는 특히 대규모 애플리케이션에서의 문제 해결 방법입니다.maven autocompletes 기능을 사용하면 시간을 절약할 수 있습니다.

  • 데이터 소스를 올바르게 구성합니다.이 질문에는 많은 답이 있습니다. 정답을 확인하세요.때로는.cj누락되거나 포함되지 않아야 할 곳에 포함되어 있습니다.시행착오를 통해 문제 발견에 도움이 될 수 있습니다.

위의 두 옵션이 모두 작동하지 않는 경우.삭제 spring.datasource.driver-class-name=com.mysql.jdbc.driver완전히.마법인지는 모르겠지만 마지막 한 잔은 나한테 효과가 있었어.

GO NERDS!!!

이러한 유형의 오류는 기본적으로 sql 버전에 대해 생성됩니다.macen 의존관계에서 sql 버전 변경/또는 추가

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency

다음과 같은 의존관계를 추가함으로써 나의 문제가 해결되었다.

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

이 문제는 프로젝트를 새로 고치는 것만으로 해결됩니다.어플리케이션을 실행할 때까지 의존관계가 로드되지 않았습니다.

저도 같은 문제가 있었어요.POM 파일에 MySQL 커넥터의 종속성을 선언하는 것을 잊어버렸기 때문에 발생하였습니다.의존성을 더하고 나서 펑!오류가 사라졌습니다.

Gradle 8.0 이후를 사용하는 사용자용.나는 사용해야만

implementation 'mysql:mysql-connector-java:8.0.26'

대신

implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.26' ,

application.yml은 다음과 같습니다.

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/<Your DB name>?useSSL=false

gradle 파일을 다시 로드하는 것을 잊지 마세요.

언급URL : https://stackoverflow.com/questions/33123985/cannot-load-driver-class-com-mysql-jdbc-driver-spring

반응형