2017-07-25 36 views
0

我的更新密碼查詢不起作用。我不知道爲什麼。沒有錯誤報告顯示。更新密碼不起作用

public class CpassDao extends ActionSupport { 

    private static final long serialVersionUID = 1L; 

    public static boolean validate(String username,String password,String npass) { 
     boolean status = false; 
     ChangePass cp = new ChangePass(); 

     try { 
      Connection con = DBConnection.getConnection(); 
      PreparedStatement ps = con.prepareStatement("select * from doctable where username=? and password=?"); 

      ps.setString(1, username); 
      ps.setString(2, password); 

      ResultSet rs= ps.executeQuery(); 
      status = rs.next(); 

      if(true) { 
       PreparedStatement ps1 = con.prepareStatement("update details set password=? where username=?"); 
       ps1.setString(1, cp.getNpass()); 
       ps1.setString(2, cp.getUsername()); 
       ps1.executeUpdate(); 
      } 
     } 

     catch (Exception ex) { 
      ex.printStackTrace(); 

      return status; 
     } 

     return status; 
    } 
} 
+0

如何向相關用戶填充cp? – user7294900

+0

我無法讓你清楚。 – Sathish

回答

0

cp已創建,但未能爲其分配用戶名或密碼,因此更新將位於空的usernme上。

順便說一句,你有沒有if(true)這是不必要的?你的意思是使用rs.hasNext()

+0

我在'if'條件下使用了cp。在狀態值的幫助下,我將值插入表中(將密碼值更改爲表) – Sathish

+0

什麼是cp.getUsername()返回? – user7294900

+0

它返回我從表單中檢索的用戶名。所有的過程都成功了,但它並沒有在表格中更新。如果有任何更正,你可以這樣做。 – Sathish

0

我想你在更新後忘了commit命令。 :)

+0

也用於提交,但未更新。 – Sathish

0

我找到了答案和問題解決。現在數據庫用新數據更新。在if語句之後,而不是給 「ps1.setString(1,cp.getNpass());」我給了「ps1.setString(1,npass());」。就這樣。問題解決了。感謝您的建議朋友。