java - MySQL 更新语句不起作用

标签 java mysql

背景:我正在为我的学校项目设计一个简单的 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/

相关文章:

Phpmyadmin 和 mysql 显示错误结果

php - 尝试更新输出没有错误但不起作用

mysql - 基于主表更新从属表

java - 如果它是 WebElement,如何循环 if 语句?

java - 为什么结果没有进入 Spring Data 应用程序

java - 为什么编译的 Java 类文件比 C 编译的文件小?

c# - 如何获取PLC S7-300串口十六进制数据

php - 将 JavaScript POST 到 mysql 数据库

java - 在这种情况下使用枚举是否正确?

java - 同时检查重复项+将项目添加到Java中的列表/集合中