java.library.path 中没有 mssql-jdbc_auth-8.2.1.x64

liu*_*liu 5 java sql-server exception jdbc maven

我正在尝试连接到 Maven 项目中的 SQL DB,但不断出现以下异常:

“com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证。...”,“..引起:java.lang.UnsatisfiedLinkError:java中没有mssql-jdbc_auth-8.2.1.x64。库.路径......”。

我已经尝试过no sqljdbc_auth in java.library.pathUnsatisfiedLinkError: no sqljdbc_auth in java.library.path 的建议,但它对我不起作用。

我已将 sqljdbc_auth.dll 的路径放入:

  1. 全局 PATH 变量全局 PATH 变量屏幕截图

  2. C:\Program Files\Java\jdk-13.0.2\bin C:\Program Files\Java\jdk-13.0.2\bin 截图

  3. pom.xml(作为surefire插件依赖项中的配置) pom.xml截图

这是我的代码:

public class JDBC {

    @Test
    public  void test() throws SQLException, ClassNotFoundException {

        String UserName="sa";
        String Password="Error911";
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String DB_URL ="jdbc:sqlserver://localhost:1433;databaseName=QADB;integratedSecurity=true;";
        //OR by using ip
        //DB_URL ="jdbc:sqlserver://192.168.0.104;databaseName=QADB;integratedSecurity=true;";
        Connection con = DriverManager.getConnection(DB_URL, UserName, Password);
    }
}
Run Code Online (Sandbox Code Playgroud)

以及控制台输出中的异常:

com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证.........................................

...引起原因:java.lang.UnsatisfiedLinkError:java.library.path中没有mssql-jdbc_auth-8.2.1.x64:[C:\ Users \ Automation \ Microsoft JDBC Driver 6.0 for SQL Server \ sqljdbc_6.0 \ enu \auth\x64].... ....

mat*_*gll 5

看来您的类路径中没有该mssql-jdbc_auth-8.2.1.x64文件。

据我所知,该文件包含在 Microsoft SQL JDBC 驱动程序(enu/auth/x64文件夹)中: https: //learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql -server?view=sql-server-ver15

您可以将该文件添加到类路径中(例如将其复制到:)C:\Program Files\Java\jdk-13.0.2\bin并修复错误。