背景:我正在为我的学校项目设计一个简单的 GUI 应用程序,该应用程序具有基本的 CRUD 功能,用户可以在相关文本字段中键入基本事务,并且记录将在分发到数据库中。
问题:现在,创建、检索和删除功能可以完美运行,没有任何错误。现在的问题是更新功能不起作用。我无法确定这是 JPanel 中我的方法的错误,还是我的数据访问文件中的方法的错误。
注意:所有数据库列表都拼写正确,因为我能够创建记录。
JPanel方法
private void updatingTransaction() {
String tName = UpdateTransaction.txtTName.getText();
String tID = UpdateTransaction.txtTID.getText();
String tDetail = UpdateTransaction.txtTDetail.getText();
String pName = UpdateTransaction.txtPName.getText();
String pNRIC = UpdateTransaction.txtPNRIC.getText();
String pDate = UpdateTransaction.txtPDate.getText();
String pContact = UpdateTransaction.txtPContact.getText();
String pEmail = UpdateTransaction.txtPEmail.getText();
String pOrganisation = UpdateTransaction.txtPOrganisation.getText();
Transaction updateTransaction = new Transaction(tName, tID, tDetail, pName, pNRIC, pDate, pContact, pEmail, pOrganisation);
if (TransactionDA.updateTransaction(updateTransaction)) {
JOptionPane.showMessageDialog(TransFrame, "Record successfully updated.");
} else {
JOptionPane.showMessageDialog(TransFrame, "Sorry, there seems to be an error in updating the record.");
}
}
数据访问方法
public static boolean updateTransaction(Transaction transaction) {
boolean success = false;
DBControl db = new DBControl();
String dbQuery;
PreparedStatement pstmt;
db.getConnection();
dbQuery = "UPDATE transactioninfo SET tName = ?, tID = ?, tDetail = ?, pName = ?, pNRIC = ?, pDate = ?, pContact = ?, pEmail = ?, pOrganisation = ? WHERE id = ?";
pstmt = db.getPreparedStatement(dbQuery);
try {
pstmt.setString(1, transaction.gettName());
pstmt.setString(2, transaction.gettID());
pstmt.setString(3, transaction.gettDetail());
pstmt.setString(4, transaction.getpName());
pstmt.setString(5, transaction.getpNRIC());
pstmt.setString(6, transaction.getpDate());
pstmt.setString(7, transaction.getpContact());
pstmt.setString(8, transaction.getpEmail());
pstmt.setString(9, transaction.getpOrganisation());
pstmt.setInt(10, transaction.getId());
if (pstmt.executeUpdate() == 1)
success = true;
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(success);
db.terminate();
return success;
}
最佳答案
尝试通过添加
YourConnection.commit();
来提交连接
pstmt.executeUpdate();之后
关于java - MySQL 更新语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49441856/