-2

ここから Sql Server (http://www.microsoft.com/en-us/download/details.aspx?id=11774) 用の JDBC ドライバーをインストールし、このサンプル コードをテストして接続をテストしました。

http://msdn.microsoft.com/en-us/library/aa342339.aspx

私が得るエラーは一列に並んでいるようです:

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


 java.lang.ClassNotFoundException:
 com.microsoft.sqlserver.jdbc.SQLServerDriver   
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)  
 at java.lang.ClassLoader.loadClass(Unknown Source)     
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)  
 at java.lang.ClassLoader.loadClass(Unknown Source)     
 at java.lang.Class.forName0(Native Method)

2 つの注意事項:

  • try-finally コードを削除すると、エラーが発生しません ==> これは、データベースへのログイン情報として作成したユーザーとパスワードに問題がないことをおそらく証明しています。
  • データベースの列として Contact を使用して Person テーブルを作成しました。

副次的な質問:

  • これはどういう意味ですか: localhost:1433
  • エラーをトリガーする行を表示するように Eclipse を設定するにはどうすればよいですか? どうもありがとうございました!
4

4 に答える 4

1

これはどういう意味ですか: localhost:1433

localhost はあなたのマシンを参照することです。1433 は、SQL Server が外部クライアントと対話するための TCP/IP インターフェイスを公開するデフォルトのポート番号です。

guido が述べたように、クラスパスに sqljdbc.jar を追加する必要があります。Eclipse を使用している場合は、プロジェクトを右クリック -> ビルド パス -> 外部アーカイブの追加 -> ダウンロードしたディレクトリから sqljdbc.jar を選択します。

ここで、同様の質問に対する私の回答の 1 つをご覧になることをお勧めします:エラー:ホストへの TCP/IP 接続が失敗しました。java.net.ConnectException: 接続が拒否されました: 接続

于 2012-09-26T12:49:35.577 に答える
1

主な質問:

sqljdbc4.jar ファイルをクラスパスに追加しましたか? そうでない場合、Java はクラスを見つける場所を知りません。

  1. 副次的な質問: localhost はコンピューターを指します。つまり、プログラムを実行するコンピューターにインストールされている SQL サーバーに接続しようとします。

ローカルホスト

ネットワークアダプターによって独自のIPに解決されます。コロン (:) の後ろの数字はポート番号です。コンピューター (またはその他のネットワーク デバイス) では、ネットワーク経由でデータを送受信する複数のアプリケーションが存在する可能性があります。そのため、アプリケーションは特定のポートでデータをリッスンします。SQL サーバーの標準ポートは 1443 です

  1. 副次的な質問: 使用

    try{ 例外をスローできるコード }catch(HandledException e){ e.printStacktrace(); }

コンソールに例外に関する情報を出力します。

于 2012-09-26T12:52:45.500 に答える
1

JDBC ドライバーが実行中のアプリケーションのクラスパスにないようです。おそらく、IDE で実行するのではなく、JDK および JRE コマンド ライン ツール (javac および java) のみを使用してサンプルを試してください。

try/catch を削除してもエラー メッセージが表示されない理由がわかりません。キャッチされていない例外が報告されるはずです。Eclipse からではなくコマンド ラインからプログラムを実行すると、キャッチされていない例外が報告されます。

localhost:1433 は JDBC URL の一部です。localhost は、データベースが実行中のアプリケーションと同じマシン上にあることを意味します。ポート 1433 は、デフォルトの SQL Server TCP ポートです。

Eclipseの質問についてはわかりません。私は主にNetbeansを使用しています。

于 2012-09-26T12:49:40.303 に答える
1

2 つの注意事項: ドライバー (jar) が見つからないというエラーが表示されます。「guido」のコメントを参照してください。

副次的な質問: localhost - ローカル コンピューターのネットワーク名、1433 - SQL サーバーが接続を待機するポート番号です。 catch 句の内容は? e.PrintStackTrace();行番号も表示する必要があります

于 2012-09-26T12:52:42.567 に答える