2

sqljdbc4 を使用してデータベースに接続しようとしています。これはかなり新しいので、いくつかのチュートリアルに従いましたが、まだ機能していないようです。プログラムを実行しようとすると、次の例外が発生します。

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ''.        ClientConnectionId:f181fd37-7e28-4392-ac86-02914c2090e1
at  com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 

そして、これは私のコードです:

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DBank;","","");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
         } catch (SQLException e) {
            e.printStackTrace(); 
         }
    return null;
4

2 に答える 2

5

認証資格情報を渡していません。統合セキュリティ (Windows 認証) を使用する場合は、接続 URLで明示的に指定する必要があり、これに必要なネイティブ ライブラリをロードする必要があります。

MSDN の「Windows 上の Windowsで統合認証を使用して接続する」を参照してください。

sqljdbc_auth.dllこれは基本的に、(32ビットまたは64ビット)を含むフォルダーをjava.library.pathシステムプロパティに含め(詳細についてはリンクを参照)integratedSecurity=true、接続文字列に追加することになります。

DriverManager.getConnection(
   "jdbc:sqlserver://localhost:1433;databaseName=DBank;integratedSecurity=true");
于 2013-09-22T14:14:10.970 に答える
1

getConnection メソッドでデータベースに接続するときに、空のユーザー名とパスワードを渡しています。

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DBank;","","");

次の例のように、db ユーザー名とパスワードを入力してみてください。

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DBank;","myusername","mypassword");
于 2013-09-22T13:35:20.043 に答える