用戶通過8個JTextFields輸入他的信息。此信息通過參數傳遞到updateUser方法,並且該方法使用此信息更新SQL表。這是我目前正在做雖然當用戶按下更新按鈕,不更改數據庫表將數據參數傳遞給更新SQL表
做檢索用戶數據,創建UserOperation並調用UpdateUser兩個方法
String userName = textFieldUserName.getText();
String userPassword = textField_1.getText();
String securityQuestion = textFieldSecQuestion.getText();
String securityAnswer = textFieldAnswer.getText();
String email = textFieldEmail.getText();
String fName = textFieldName.getText();
String phoneNumber = textFieldPhone.getText();
String department = textFieldDepartment.getText();
UserOperations userOperations = new UserOperations();
userOperations.updateUser(userName, userPassword, securityQuestion, securityAnswer, email, fName, phoneNumber, department);
的UpdateUser兩個方法
public void updateUser (String userName, String userPassword, String securityQuestion, String securityAnswer, String email, String fName, String phoneNumber, String department)
{
try
{
String sql = "UPDATE systeuser SET username = ?,userpassword = ?,securityquestion = ?,securityanswer = ?,email = ?,fname = ?,phonenumber = ?,department = ? WHERE username = ?";
stmt = conn.prepareStatement(sql);
stmt.setString (1, userName);
stmt.setString (2, userPassword);
stmt.setString (3, securityQuestion);
stmt.setString (4, securityAnswer);
stmt.setString (5, email);
stmt.setString (6, fName);
stmt.setString (7, phoneNumber);
stmt.setString (8, department);
stmt.setString (9, userName);
stmt.executeUpdate();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
刪除'?'前的所有引號當您使用PrepareStatement創建語句時,它不需要任何引號,因爲我們在語句中使用了SetString和setInt。 – 2013-05-06 11:19:33
[列索引無效,使用PreparedStatement更新](http://stackoverflow.com/questions/9384804/invalid-column-index-update-using-preparedstatement) – 2013-05-06 11:22:56