2017-06-29 15 views
0

Microsoft SQL ServerのデータベーステーブルをJavaプロジェクトにリンクしてプロジェクトを正常に設計できない場合があります。Microsoft SQL ServerデータベースをJavaプロジェクトに接続する

プロジェクトフレームは正常に読み込まれますが、通知されるとデータベースは中断されます適切なドライバが見つかりません私のデータベースです。

私はsqljdbc4ドライバをプロジェクトのライブラリに追加しましたが、まだそのような警告が出ています。

はここに私の接続コードです:

public void doConnect(){ 
     try{ 
     String un = "casey"; 
     String pw = "****"; 
     String host = "jdbc:sqlserver://caseydido\\mssqlexpress:1433;databaseName=stock"; 

     String sql = "SELECT * FROM STAFF_DATA"; 
     //loading the driver class 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //This is for driver sqljdbc2* 
//  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); /*This is for driver sqljdbc4*/ 
     Connection conn = DriverManager.getConnection(un, pw, host); 
     Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
     ResultSet rs = stmt.executeQuery(sql); 
     while (rs.next()){ 
      System.out.println(rs.getString(1)); 
      conn.close(); 
     } 

NOTEのケーシーは、データベーステーブルのユーザ名で、データベースの名前は****私のパスワードを表し、STOCKです。

システム環境変数パスにsqljdbc4ドライバパスを追加しようとしましたが、それでも動作しませんでした。最初

+2

マニュアルの「DriverManager.getConnection()」の署名を再確認することができます。 – mustaccio

+2

より具体的には、署名は['DriverManager。 \t getConnection(String url、String user、String password) '](http://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html#getConnection-java.lang.String-java .lang.String-java.lang.String-)つまり、引数を間違った順序で呼び出しています。あなたが実際に例外メッセージ全体を読んでいればすぐに明らかになっていたはずの何か、BTW。 –

+0

無関係ですが、 'Class.forName()'はもはや必要ありません。 –

答えて

0

まず物事:

あなたはマーク・Rotteveelで述べたように、次のコードを修正する必要があります。また、どこに行くのかを理解するために、変数に意味のある名前を使用することを検討してください。次へ

Connection conn = DriverManager.getConnection(un, pw, host); 

あなたは(あなたがECLIPSEなどのIDEを使用している場合)プロジェクトのビルドパスに SQLJDBCコネクタjarファイルを追加しても、パスを追加することを検討する必要が
Connection conn = DriverManager.getConnection(host, un, pw); 

環境変数へのコネクタjar CLASSPATH

正しい構文を使用してホストURLを構築するには、MSDNのドキュメントに従ってください。ドキュメントhere

EDIT-1:あなたのコードを1として

、接続があるため、あなたが作った間違いで閉鎖されることになっています。これを以下から変更する必要があります。

while (rs.next()){ 
    System.out.println(rs.getString(1)); 
    conn.close(); 
} 

次のように問題を解決してください。

while (rs.next()){ 
    System.out.println(rs.getString(1)); 
} 
conn.close(); 

これが役に立ちます。

+0

あなたの応答N00bプログラマーに感謝します。私は変数名を理解しています。私は自分のプロジェクトライブラリにsqljdbc4を追加しました。接続(host、un、pw)に関しては試してみましたが、エラーが表示されていました。それは解決されましたが、今は接続が閉じられていることを示しています....一方、私のプロジェクトは正常に開きます –

+0

@CaseyRunor、OPからの最新のコメントに従って私の答えを編集 –

関連する問題