用于“ com.microsoft.sqlserver.jdbc.SQLServerDriver”的ClassNotFoundException

时间:2019-06-21 16:04:51

标签: java sql-server jdbc

这是一个重复的问题,但我所做的一切都正确。我在项目的pom.xml中添加了以下Maven回购依赖项:

  <dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
    <scope>test</scope>
</dependency>

这是我在1.8.0_144上运行的Java代码:

    package com.demo;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.Statement;

    public class Test {
    Connection con;
    Statement st;
    PreparedStatement ps;

     Test(){
          try {
                            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con =       DriverManager.getConnection("jdbc:sqlserver://localhost:1521;user=SYSTEM;password=oracle;sid=xe");
            if(con != null) {
                System.out.println("Connected to MSsql !!");
            }

            //st = con.createStatement();


        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {

        new Test();
        System.out.println(System.getProperty("java.version"));
    }
}

1 个答案:

答案 0 :(得分:2)

如果您不是将代码作为Maven测试运行,则很可能test范围是不合适的。

尝试将范围更改为<scope>compile</scope>

如果这样做没有帮助,请发布或提交整个项目,这样该案例可以重现。

您可以在http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope上了解范围。