2016-08-23 6 views
-2

私は初心者です。問題が発生しました。私は多くの方法を試みましたが、成功できませんでした。私はjavaでデータベースを更新したいのですが、私の正確なエラーは何か分かりません。ここに私のコードです。Javaでデータベースを動的に更新する

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           

    String username=jTextField1.getText(); 
    String password=jPasswordField1.getText(); 
    String new_pass=jPasswordField2.getText(); 
    update(1,username,new_pass); 
} 

と関数は次のように呼ばれている:私は私の誤りがある正確に把握していない

public void update(int id, String name, String pass) { 

    int i = 0; 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "root", ""); 

     String sql = "UPDATE user_pass SET id=?, password=? WHERE username=? "; 
     PreparedStatement pst = con.prepareStatement(sql); 
     pst.setInt(1, id); 
     System.out.println("Yeha samma thik xa"); 
     pst.setString(2, name); 
     pst.setString(3, pass); 
     pst.executeUpdate(); 
     System.out.println("Updated Successifully"); 
     JOptionPane.showMessageDialog(null, "Successifully updated! "); 

    } catch (Exception ex) { 
     JOptionPane.showMessageDialog(null, "Sorry there is an error\nPlease check the information provided ", " ", JOptionPane.ERROR_MESSAGE); 
    } 

} 
+0

このコードにはどのような問題がありますか?何かエラーがありますか?不思議ですか?他に何か? –

+0

はい、どこの句の近くにSQLエラーがあると言われますか? –

+0

@MithunAdhikariそれは具体的に何を言いますか? –

答えて

0

問題はクエリ自体にありました。これは、この String sql = "UPDATE user_pass SET id=?, password=? WHERE username=? "; そして、すべてがうまく働いていない

String sql=UPDATE user_pass SET id='"+id+"', password='"+password+"' WHERE username='"+username+"' "; 

されている必要があります。

0

これは、エラーが発生したためです。

} catch (Exception ex) { 

しかし、あなたはそれを無視して無視します。スタックトレースでエラーを出力すると、どこでエラーが発生したのかが分かります。

これは役に立ちませんが、IDEでデバッガを使用することをお勧めします。これにより、エラーと原因の両方を診断するのに役立ちます。

0
catch (Exception ex) { 
    JOptionPane.showMessageDialog(null, "Sorry there is an error\nPlease check the information provided ", " ", JOptionPane.ERROR_MESSAGE); 
} 

"Exception ex"を印刷してください。次に、エラーが何であるか把握し、修正することができます。

初心者の方:キャッチブロックに "System.out.println(ex)"を入れてください。

関連する問題