2016-11-23 5 views
0

こんにちは私はJDBCを初めて使っていて、JDBCを構築中にexecuteQueryというエラーが発生しました。私はちょうどstudentテーブルのすべての情報を表示したいと思う。 prepareStatementを使用しましたが、私は持っていないのでパラメータを設定しませんでした。それはcreateStatementを使用して動作します。 JDBCのexecuteQueryエラー

この

は、私は私はそれが prepareStatementを使用して作業を取得できますか

The method executeQuery(String) in the type Statement is not applicable for the arguments() 

を取得していますエラーです。

public class Test3 extends JFrame{ 

    Vector rowData,columnNames; 
    JTable jt = null; 
    JScrollPane jsp = null; 

    Connection myConn = null; 
    Statement myStmt = null; 
    ResultSet myRs = null; 

    //constructor 
    public Test3() { 
     columnNames = new Vector(); 
     rowData = new Vector(); 

     columnNames.add("Student_ID"); 
     columnNames.add("Name"); 
     columnNames.add("Gender"); 
     columnNames.add("Age"); 
     columnNames.add("DOB"); 
     columnNames.add("Major"); 

     try { 
      //1. Get a connection to database 
      Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/stu?useSSL=false","root","1972"); 

      //2. Create a prepareStatement 
      myStmt = myConn.prepareStatement("Select * from student"); 

      // 3. Set the parameters 
      // no need to set the parameters, because there is not parameter needed to be set 

      // 4. Execute SQL query 
      ***myRs = myStmt.executeQuery();*** 

      while(myRs.next()) { 
       Vector col = new Vector(); 
       col.add(myRs.getString(1)); 
       col.add(myRs.getString(2)); 
       col.add(myRs.getString(3)); 
       col.add(myRs.getInt(4)); 
       col.add(myRs.getString(5)); 
       col.add(myRs.getString(6)); 

       rowData.add(col); 
      } 

     } catch(Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if(myRs!=null) myRs.close(); 
       if(myStmt!=null) myStmt.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

    } 

    public static void main(String[] args) { 
     Test3 test3 = new Test3(); 
    } 

} 
+1

を使用することができますいずれかでありますStatementにメソッドが存在しないためコンパイルされないと仮定します。プリペアドステートメントをPreparedStatement型の変数に割り当てます。 –

+0

'Statement myStmt = null;'の代わりに 'PreparedStatement myStmt = null;'を使ってみてください。 –

答えて

1

誤った方法を使用しました。 声明については、のexecuteQueryの定義はのPreparedStatementについて ResultSet executeQuery(String sql) throws SQLException; で、difinitionはResultSet executeQuery() throws SQLException;

ですから、私は、あなたがあなたのエラーが何であるかを言ういけないPreparedStatement myStmt = null;またはmyRs = ((PreparedStatement)myStmt).executeQuery();

関連する問題