2017-10-09 30 views
-5

これはコードです。このコードでは、コンボボックスから取得している詳細をyデータベースに更新しようとしています。 エラーが発生する:現在のステートメントの少なくとも1つのパラメータが初期化されていない

private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {          
    Connection connection; 
    try { 
     int flag=1; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
     } catch (Exception ex) { 
      System.out.println("Error"+ex); 
     } 
     connection = DriverManager.getConnection("jdbc:derby://localhost:1527/loginDB", "login_user" ,"root"); 
     String query = "INSERT into FACULTY_DETAILS (FACULTYNAME,LECTUREQUALITY,COMSKILLS,KNOWLEDGE,BEHAVIOUR,NOTESPROVIDED,PUNCTUALITY,SUGGESTION) values(?,?,?,?,?,?,?,?)"; 
     PreparedStatement pt = connection.prepareStatement(query); 
     //Statement pt = connection.createStatement(); 
     pt.executeUpdate(); 
     ResultSet rs = pt.executeQuery("SELECT * FROM LOGIN_USER.FACULTY_DETAILS"); 
     while(rs.next()){ 
     if(rs.getString(1).equals(kapil.getText())){ 
     pt.setString(2, (String) javalec.getSelectedItem()); 
     pt.setString(3,(String)javacomm.getSelectedItem()); 
     pt.setString(4,(String)javaknow.getSelectedItem()); 
     pt.setString(5, (String) javabeh.getSelectedItem()); 
     pt.setString(6, (String) javanot.getSelectedItem()); 
     pt.setString(7, (String) javapun.getSelectedItem()); 
     pt.setString(8,javatext.getText()); 
     pt.executeUpdate(); flag=0;} 
     if(rs.getString(1).equals(ziaul.getText())){ 
     pt.setString(2, (String) oslec.getSelectedItem()); 
     pt.setString(3,(String)oscomm.getSelectedItem()); 
     pt.setString(4,(String)osknow.getSelectedItem()); 
     pt.setString(5, (String) osbeha.getSelectedItem()); 
     pt.setString(6, (String) osnote.getSelectedItem()); 
     pt.setString(7, (String) ospun.getSelectedItem()); 
     pt.setString(8,ostext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(saurabh.getText())){ 
     pt.setString(2, (String) daalec.getSelectedItem()); 
     pt.setString(3,(String)daacomm.getSelectedItem()); 
     pt.setString(4,(String)daakno.getSelectedItem()); 
     pt.setString(5, (String) daabeh.getSelectedItem()); 
     pt.setString(6, (String) daanot.getSelectedItem()); 
     pt.setString(7, (String) daapun.getSelectedItem()); 
     pt.setString(8,daatext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(gayatri.getText())){ 
     pt.setString(2, (String) ecolec.getSelectedItem()); 
     pt.setString(3,(String)ecocomm.getSelectedItem()); 
     pt.setString(4,(String)ecokno.getSelectedItem()); 
     pt.setString(5, (String) ecobeh.getSelectedItem()); 
     pt.setString(6, (String) econot.getSelectedItem()); 
     pt.setString(7, (String) ecopun.getSelectedItem()); 
     pt.setString(8,ecotext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(tasleem.getText())){ 
     pt.setString(2, (String) clec.getSelectedItem()); 
     pt.setString(3,(String)ccomm.getSelectedItem()); 
     pt.setString(4,(String)cknow.getSelectedItem()); 
     pt.setString(5, (String) cbeh.getSelectedItem()); 
     pt.setString(6, (String) cnote.getSelectedItem()); 
     pt.setString(7, (String) cpun.getSelectedItem()); 
     pt.setString(8,ctext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(saurabhs.getText())){ 
     pt.setString(2, (String)graplec.getSelectedItem()); 
     pt.setString(3,(String)grapcomm.getSelectedItem()); 
     pt.setString(4,(String)grapknow.getSelectedItem()); 
     pt.setString(5, (String) grapbeh.getSelectedItem()); 
     pt.setString(6, (String) grapnot.getSelectedItem()); 
     pt.setString(7, (String) grappun.getSelectedItem()); 
     pt.setString(8,graphtext.getText()); 
     pt.executeUpdate(); 
      flag=0;} 
     if(rs.getString(1).equals(sanjay.getText())){ 
     pt.setString(2, (String) softlec.getSelectedItem()); 
     pt.setString(3,(String) softcomm.getSelectedItem()); 
     pt.setString(4,(String) softknow.getSelectedItem()); 
     pt.setString(5, (String) softbeh.getSelectedItem()); 
     pt.setString(6, (String) softnot.getSelectedItem()); 
     pt.setString(7, (String) softpun.getSelectedItem()); 
     pt.setString(8,softtext.getText()); 
     pt.executeUpdate(); 
     flag=0; 
     } 
     if(flag==0){ 
     JOptionPane.showMessageDialog(null,"Feedback Submitted Successfully"); 
     } 
     } 

    } catch (SQLException ex) { 
     Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
    }         
}          

この

は私が..私は私が与えたコードを実行しようとしています を助けてください使用していたコードですが、それは現在のステートメントに、少なくとも1つのパラメータが初期化されていない」私にエラーを与え続けています。 "

String query = "INSERT into FACULTY_DETAILS (FACULTYNAME,LECTUREQUALITY,COMSKILLS,KNOWLEDGE,BEHAVIOUR,NOTESPROVIDED,PUNCTUALITY,SUGGESTION) values(?,?,?,?,?,?,?,?)"; 

これらのパラメータは、あなたがSQLを実行する前に、(それは単にの値なしで意味がありません設定する必要があります:だから...あなたのプリペアドステートメントで

+1

'pt.setString(1、....)'はあなたのコードでは決して起こりません –

+0

私に解決策を教えてください。 –

+1

あなたはすでに以下の質問に答えています。 James_Dが説明したように、値を設定する前に文を実行することはできません。 –

答えて

1

SQLは、パラメータ・マーカーを持って助けてくださいの場所)。

ただし、パラメータを設定せずに文を実行しようとしている。

PreparedStatement pt = connection.prepareStatement(query); 
    pt.executeUpdate(); 

あなたが記述エラーが発生します。現時点でこのステートメントを実行することで、あなたが何をしたいのかは分かりません。

また、クエリと更新の両方に同じステートメントオブジェクトを使用しようとしています。私はこれがうまくいくとは思わない。クエリの別々のステートメントを作成します。

PreparedStatement queryStatement = connection.prepareStatement("SELECT * FROM LOGIN_USER.FACULTY_DETAILS"); 
ResultSet rs = queryStatement.executeQuery(); 

最後に、あなたはこれらのいずれかでパラメータ番号1を設定したことがないので、pt.executeUpdate()への後続の呼び出しは、ifブロックで、また、すべてのパラメータが設定されずに起こることに注意してくださいケース。また、そのパラメーターを適切な値に設定する必要があります。

+0

実際に実行したいのは、データベースの名前と同じ名前のラベル名が次の行を挿入するかどうかをチェックしたいということです。後でクエリーを実行する必要があります。 –

+0

@SankalpSrivastava "query"(クエリではなく、挿入物です)。私はあなたが必要な情報を得る前にそれを実行しようとしている理由を知りません。 –

+0

私が書いたコードや手がかりを教えてください。 –

1

ここで問題となるのは、必要な詳細を設定した後、今後使用するステートメントを準備することです。 次に、値の設定が期待されるexecuteUpdate()を実行しようとしています。

ソリューション:ResultSetを取得し、PreparedStatementの値を設定する前に使用executeUpdate()を削除します。

private void SubmitActionPerformed(java.awt.event.ActionEvent evt) { 
    Connection connection; 
    PreparedStatement pt; 
    Statement st; 
    ResultSet rs; 
    try { 
    int flag = 1; 
    try { 
    Class.forName("com.mysql.jdbc.Driver"); 
    } catch (Exception ex) { 
    System.out.println("Error" + ex); 
    } 
    connection = DriverManager.getConnection("jdbc:derby://localhost:1527/loginDB", "login_user", "root"); 
    String query = "INSERT into FACULTY_DETAILS (FACULTYNAME,LECTUREQUALITY,COMSKILLS,KNOWLEDGE,BEHAVIOUR,NOTESPROVIDED,PUNCTUALITY,SUGGESTION) values(?,?,?,?,?,?,?,?)"; 
    pt = connection.prepareStatement(query); 
    st = connection.createStatement(); 
    rs = st.executeQuery("SELECT * FROM LOGIN_USER.FACULTY_DETAILS"); 
    while (rs.next()) { 
    if (rs.getString(1).equals(kapil.getText())) { 
    pt.setString(2, (String) javalec.getSelectedItem()); 
    pt.setString(3, (String) javacomm.getSelectedItem()); 
    pt.setString(4, (String) javaknow.getSelectedItem()); 
    pt.setString(5, (String) javabeh.getSelectedItem()); 
    pt.setString(6, (String) javanot.getSelectedItem()); 
    pt.setString(7, (String) javapun.getSelectedItem()); 
    pt.setString(8, javatext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(ziaul.getText())) { 
    pt.setString(2, (String) oslec.getSelectedItem()); 
    pt.setString(3, (String) oscomm.getSelectedItem()); 
    pt.setString(4, (String) osknow.getSelectedItem()); 
    pt.setString(5, (String) osbeha.getSelectedItem()); 
    pt.setString(6, (String) osnote.getSelectedItem()); 
    pt.setString(7, (String) ospun.getSelectedItem()); 
    pt.setString(8, ostext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(saurabh.getText())) { 
    pt.setString(2, (String) daalec.getSelectedItem()); 
    pt.setString(3, (String) daacomm.getSelectedItem()); 
    pt.setString(4, (String) daakno.getSelectedItem()); 
    pt.setString(5, (String) daabeh.getSelectedItem()); 
    pt.setString(6, (String) daanot.getSelectedItem()); 
    pt.setString(7, (String) daapun.getSelectedItem()); 
    pt.setString(8, daatext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(gayatri.getText())) { 
    pt.setString(2, (String) ecolec.getSelectedItem()); 
    pt.setString(3, (String) ecocomm.getSelectedItem()); 
    pt.setString(4, (String) ecokno.getSelectedItem()); 
    pt.setString(5, (String) ecobeh.getSelectedItem()); 
    pt.setString(6, (String) econot.getSelectedItem()); 
    pt.setString(7, (String) ecopun.getSelectedItem()); 
    pt.setString(8, ecotext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(tasleem.getText())) { 
    pt.setString(2, (String) clec.getSelectedItem()); 
    pt.setString(3, (String) ccomm.getSelectedItem()); 
    pt.setString(4, (String) cknow.getSelectedItem()); 
    pt.setString(5, (String) cbeh.getSelectedItem()); 
    pt.setString(6, (String) cnote.getSelectedItem()); 
    pt.setString(7, (String) cpun.getSelectedItem()); 
    pt.setString(8, ctext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(saurabhs.getText())) { 
    pt.setString(2, (String) graplec.getSelectedItem()); 
    pt.setString(3, (String) grapcomm.getSelectedItem()); 
    pt.setString(4, (String) grapknow.getSelectedItem()); 
    pt.setString(5, (String) grapbeh.getSelectedItem()); 
    pt.setString(6, (String) grapnot.getSelectedItem()); 
    pt.setString(7, (String) grappun.getSelectedItem()); 
    pt.setString(8, graphtext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } else if (rs.getString(1).equals(sanjay.getText())) { 
    pt.setString(2, (String) softlec.getSelectedItem()); 
    pt.setString(3, (String) softcomm.getSelectedItem()); 
    pt.setString(4, (String) softknow.getSelectedItem()); 
    pt.setString(5, (String) softbeh.getSelectedItem()); 
    pt.setString(6, (String) softnot.getSelectedItem()); 
    pt.setString(7, (String) softpun.getSelectedItem()); 
    pt.setString(8, softtext.getText()); 
    pt.executeUpdate(); 
    flag = 0; 
    } 
    if (flag == 0) { 
    JOptionPane.showMessageDialog(null, "Feedback Submitted Successfully"); 
    } 
    } 

    } catch (SQLException ex) { 
    Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
    } finally { 
    if (rs != null) { 
    rs.close(); 
    } 
    if (st != null) { 
    st.close(); 
    } 
    if (pt != null) { 
    pt.close(); 
    } 
    if (connection != null) { 
    connection.close(); 
    } 
    } 
} 

注:私は重複した条件のチェックを回避するために、ifの場所でelse ifを使用。最後に、メモリリークを避けるためにブロックする

+0

あなたのコードを実行した後、私は次のエラーが発生しています:メソッド 'executeQuery(文字列)'は、準備された文で許可されていません。 –

+0

@SankalpSrivastava Wierd!私は同じコードを試してみて、それは私のために働いた。問題ない!あなたのためにクエリを実行する文を作成するだけです。私は同じコードの答えを更新しました。 – Sridhar

関連する問題