복붙노트

[SPRING] 드라이버 클래스를로드 할 수 없습니다. com.microsoft.jdbc.sqlserver.SQLServerDriver

SPRING

드라이버 클래스를로드 할 수 없습니다. com.microsoft.jdbc.sqlserver.SQLServerDriver

내 봄 부팅 응용 프로그램을 실행하는 동안 예외가 발생, 그것은 데이터 소스의 콩을 만들 수 없다는 말을 하고이 예외의 원인은 SQLServer에 대한 내 DriverClass를 감지 할 수 없다는 것입니다.

다음은 내 application.properties 파일입니다.

spring.jpa.database-platform=org.hibernate.dialect.SQLServerDialect
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost;databaseName=dbname
spring.datasource.username=name
spring.datasource.password=****

sqljdbc connector jar를 다운로드하여 lib 폴더에 넣고 pom.xml 파일에 해당 참조를 제공합니다.

    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

<groupId>com.myproject</groupId>
<artifactId>myproject-notifications</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>netpace-notifications</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.1.1</version>

        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/sqljdbc4-2.0.jar</systemPath>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

나는이 꼬리표를 사용하여 시도했다 :

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
    </dependency>

하지만 내 pom.xml 파일에 오류가있어 다른 접근법을 사용해야하는 이유가 있습니다. 나는 봄에 새롭고 누군가 내가 내가 여기서 잘못하고있는 것을 알려주면 매우 감사 할 것이다. 미리 감사드립니다.

해결법

  1. ==============================

    1.잘못된 드라이버를로드하려고합니다. com.microsoft.jdbc.sqlserver.SQLServerDriver라는 이름의 드라이버는 매우 오래된 SQL Server 2000 JDBC 드라이버의 드라이버입니다.

    잘못된 드라이버를로드하려고합니다. com.microsoft.jdbc.sqlserver.SQLServerDriver라는 이름의 드라이버는 매우 오래된 SQL Server 2000 JDBC 드라이버의 드라이버입니다.

    SQL Server 2005 JDBC 드라이버에서 Microsoft는 이것을 com.microsoft.sqlserver.jdbc.SQLServerDriver로 변경했습니다 (sqlserver와 jdbc 사이의 순서 전환에 유의하십시오).

    참고 : 이전 버전의 드라이버를 사용하고 있습니다. Microsoft는 SQL Server JDBC 드라이버의 소스를 공개했으며 다음과 같이 Maven에서 사용할 수 있습니다.

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>6.2.2.jre8</version>
    </dependency>
    

    실제 최신 버전은 https://github.com/Microsoft/mssql-jdbc를 참조하십시오.

  2. ==============================

    2.항아리가 시스템에 있습니까? maven이 시스템으로부터 의존성을 얻도록 강요하고 있다면, 그 경로에 있지 않으면 maven은 실패 할 것이다. 태그를 다음으로 대체 할 수 있습니까?

    항아리가 시스템에 있습니까? maven이 시스템으로부터 의존성을 얻도록 강요하고 있다면, 그 경로에 있지 않으면 maven은 실패 할 것이다. 태그를 다음으로 대체 할 수 있습니까?

    <dependency>
        <groupId>com.microsoft</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>3.0</version>
    </dependency>
    

    출처: https://mvnrepository.com/artifact/com.microsoft/sqljdbc4/3.0

  3. from https://stackoverflow.com/questions/47429334/cannot-load-driver-class-com-microsoft-jdbc-sqlserver-sqlserverdriver by cc-by-sa and MIT license