1

EclipseIDEでMicrosoftJDBCsqljdbc_4.0ドライバーを使用してSQLサーバー2008r2をJavaアプリケーションに接続しようとしていますが、JavaとSQLサーバー2008の間のJDBC接続を何度か試しましたが、同じエラーメッセージが表示されます。最後に、何が得られているのかをエラーメッセージとともにここに質問することにしました。何が間違っているのかを知ることができますか?

リンクをたどった!SQLServerおよびJavaとの接続用のリンク。

私のJavaプログラム:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Connect
{
    public static void main(String[] args) throws Exception
    {
        String userName = "Abhishek";
        String password = "abhishek-nayak";
        String url = "jdbc:sqlserver://Abhishek-VAIO\\MSSQLSERVER;databaseName=master;integratedSecurity=true";
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection conn = DriverManager.getConnection(url,userName,password);
            System.out.println("Connected");
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }
}

私のエラーメッセージは次のとおりです。

Sep 06, 2012 9:09:55 PM com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:5cb4d70b-f644-4670-b7bc-a2312b8547b4
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:60)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.abhishek.Connect.main(Connect.java:17)
Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:35)
    ... 12 more
4

1 に答える 1

4

ネイティブSQLServerドライバーに依存するJDBCドライバーを使用しており、依存するDLLへのパス(sqljdbc_auth.dll)をJavaのライブラリパスに追加する必要があります。

これをEclipseプロジェクトの設定に追加するには(SQL Serverドライバーが既にインストールされていると仮定します)、次のようにします。

プロジェクトエクスプローラーでプロジェクトを右クリック->プロパティ->Javaビルドパス->選択するsqljdbc4.jarと、展開されます->ネイティブライブラリの場所を選択->編集...->入力<location of SQL server driver on your machine>/sqljdbc_2.0/enu/auth/x64->OK。

結果は次のようになります。

Eclipseでのネイティブライブラリパスの場所

于 2012-09-06T17:00:24.000 に答える