如何获取主键来执行更新语句

我正在尝试使用Java JDBC更新我的表。 但我不知道如何使用Prepared Statement调用我的主键。 我尝试为我的数据库列创建一个USER_ID对象,但不知道从哪里开始。 我如何确定我是否已更新数据库?

 String updateEmployee = employeeTf.getText(); String updateDepartment = departmentTf.getText(); if(updateEmployee.isEmpty() && updateDepartment.isEmpty()){ JOptionPane.showMessageDialog(null, "You didn't update it"); } else if(updateEmployee.isEmpty()){ JOptionPane.showMessageDialog(null, "Please update your name"); } else if(updateDepartment.isEmpty()){ JOptionPane.showMessageDialog(null, "Please update your department"); } else{ String updateQuery = "UPDATE SAMPLE SET EMPLOYEENAME = ?, DEPARTMENT = ? WHERE USER_ID = ?"; try(Connection con = DBUtilities.getConnection(DBType.JDBC); PreparedStatement myPs = con.prepareStatement(updateQuery);){ myPs.setString(1, employeeTf.getText()); myPs.setString(2, departmentTf.getText()); myPs.setInt(3, "WHAT GOES HERE"); //Execute insert SQL Statement myPs.executeUpdate(); System.out.print("Updated"); } catch (SQLException ex) { DBUtilities.processException(ex); } } 

如果您正在进行更新,则记录必须已存在于表中。 您的应用程序大致需要以下过程:

  1. 从数据库中读取记录
  2. 将记录中的数据放入GUI控件中, 并将ID值保留在某处
  3. 现在用户点击“保存”:您将GUI控件中的值传输到PreparedStatement,并使用步骤2中的ID来构建where参数。
  4. 承诺。

如果要创建新记录,则跳过步骤1,因此没有ID值。 然后,您需要执行INSERT,而不是在步骤3中执行UPDATE。

我认为employeeIf对象应该有一个像getUserId()这样的方法来返回该员工的UserId。 我不确定你是如何构建这个employeeIf对象的,但它总是应该有一些方法来获取该员工的userId。 那么myPs.setInt(3,“什么在这里”); 应该看起来像myPs.setInt(3,employeeTf.getUserId());