2012-03-13 20 views
0

オンラインの簡単な例を使用して、私はJavaプログラムを実行してテーブルからユーザーを戻しています。JavaプログラムはmySQLデータベースに接続しません

データベースはMySQLです。私はすでにJDBCドライバをダウンロードしてJRE7/libフォルダに保存しました。

問題はプログラムがデータベースに接続しないこと、tryブロック全体をスキップして最後に "test"文字列を出力することです。私はこれの大きな一歩を見過ごしたことがありますか?本当にイライラしています!!

EDIT:データベースへの接続を設定しようとしています。

mysql-connector-java-5.1.18-binは、jre7/libに格納されています。

スタートアップmysql workbench。接続はcom.fyp.dbという名前で作成され、ホストアドレスは127.0.0.1:3306です。

次に、私のコードを実行すると、mySQLワークベンチによって提供されるサンプルテーブル - sakilaをクエリしようとします。

インストール済みのMySQLワークベンチ。インストールされたJDBCドライバ私はあなたがこの行が必要だと思う

public class Version { 

public static void main(String[] args) { 

    Connection con = null; 
    Statement st = null; 
    ResultSet rs = null; 

    //String url = "jdbc:mysql://127.0.0.1/sakila"; 
    String url = "jdbc:mysql://localhost:3306/sakila"; 
    String user = "root"; 
    String password = "root"; 

    try { 

     Class.forName("com.mysql.jdbc.Driver").newInstance(); 

     con = DriverManager.getConnection(url, user, password); 
     st = con.createStatement(); 
     rs = st.executeQuery("select * from ACTOR;"); 

     System.out.println("test"); 

     if (rs.next()) { 
      System.out.println(rs.getString(1)); 
     } 

    } catch (SQLException ex) { 
     ex.printStackTrace(); 

    } finally { 
     try { 
      if (rs != null) { 
       rs.close(); 
      } 
      if (st != null) { 
       st.close(); 
      } 
      if (con != null) { 
       con.close(); 
      } 

     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

}

+3

tryブロックをスキップしません。それ以外の場合は、エラーが出力されます。ヒント:System.out.println(...)をさらに追加して、何が起こっているのかを調べてください。 – klonq

+0

なぜあなたはデータベースに接続していないのですか?おそらく、 "test"がresultSetの最初の行の最初の列にあるのでしょうか? – oers

+0

確かにtryブロックをスキップするため、iveはそこにいくつかの "test"文字列を追加し、それらは出力されません。 – Jnanathan

答えて

0

:たDriverManager.getConnection(...)を呼び出す前に

Class.forName("org.mysql.Driver"); 

を。

+0

JDBC 4.0より前のバージョンで、それがそうだった場合は例外をスローします。 –

+0

提案をありがとうが、それは何も変更しませんでした。 – Jnanathan

0

おそらく、新しいドライバインスタンスを作成する必要があります。方法は次のとおりです。

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
+0

私はそれを試して、それは動作しませんでした! – Jnanathan

+1

JDBC 4.0より前のバージョンのみです。その場合、例外がスローされます。 –

+0

@BrianRoach:まあ...たぶんそれは投げた... –

0

jdbc.driversプロパティが設定されていることを確認する必要があります。これを実行するためのさまざまな方法は、それをダウンロードし,,,

それは簡単ですthe javadocs for DriverManager

0

を参照してください、..あなたは、MySQLコネクタ-javaの-5.1.16-bin.jarを呼ばれるの.jarファイルが必要があるとあなたのライブラリに追加してください...

幸運!!!

関連する問題