2012-03-23 6 views
1

JavaとMySQLをJDBCコネクタで接続しようとしています。ですから、official citeからコネクタをダウンロードし、クラスパスに追加してEclipseのライブラリに追加しました。 は、今私はJava + MySQLとJDBCコネクタの間違い

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


    public class LocalhostDBConnection 
    { 
     LocalhostDBConnection() 
     { 
     Connection connection; 
     try { 
      // Название драйвера 
      String driverName = "com.mysql.jdbc.Driver"; 

      Class.forName(driverName); 

      // Create a connection to the database 
      String serverName = "localhost"; 
      String mydatabase = "AvtoKovriki"; 
      String url = "jdbc:mysql://" + serverName + "/" + mydatabase; 
      String username = "root"; 
      String password = ""; 

      connection = DriverManager.getConnection(url, username, password); 
      System.out.println("is connect to DB" + connection); 

      String query = "Select * FROM users"; 
      Statement stmt = connection.createStatement(); 

      ResultSet rs = stmt.execute(query); 
      String dbtime; 
      while (rs.next()) 
      { 
       dbtime = rs.getString(1); 
       System.out.println(dbtime); 
      } // end while 

      connection.close(); 
     } // end try 
     catch (ClassNotFoundException e) 
     { 
      e.printStackTrace(); 
      // Could not find the database driver 
     } catch (SQLException e) 
     { 
      e.printStackTrace(); 
      // Could not connect to the database 
     } 
     } 
    } 

の下しかし、文字列のコードを使用しています:のResultSet rsを=でstmt.execute(クエリ)を、 「型の不一致:ブール値からResultSetに変換できません」という間違いがあります。 問題の内容を理解できません。助けが要る。

+0

ありがとうございました。 –

答えて

4

Statement#executeメソッドは、booleanを返します。 Statement#executeQueryメソッドを探しています。これはResultSetを返します。

あなたのコードは次のようにする必要があります:

ResultSet rs = stmt.executeQuery(query); 
+0

+1、あなたは私にそれを打つ! –

1

はまず、これは、MySQLとは何の関係もありません - あなたは、限りのコードを実行するようになっていない、とMySQL固有であなたのコードのお得な情報のどれもしていませんタイプ。 (私のポイントは、MySQL jarファイルが適切な場所にあるかもしれないということです;このエラーはそれに起因するものではありません)

Statement.execute(String)のドキュメントを見ると、booleanResultSetではありません。そのため、コンパイル時エラーが発生しています。

代わりexecuteQuery(String)たい - かコールexecute(String)ができ、それがtrueを返した場合、getResultSetを呼び出します。あなたがexecuteQuery(String sql)方法

を使用する必要が

+0

質問のタイトルの無関係を言及するために+1! –

0
stmt.execute(query); 

の詳細のjavadocは、リターンはResultSetをしませブール参照してください。 データベース内のデータを変更しないクエリに対して、stmt.executeQuery()メソッドを使用して、結果セットを取得することができます。

データベース内のデータを変更する場合は、executeUpdate()メソッドを使用します。このメソッドは、データが変更されたかどうかを示す整数を返します。

関連する問題