我正在尝试使用Java JDBC更新我的表。但我不知道如何使用Prepared Statement调用我的主键。我尝试为我的数据库列创建一个USER_ID
对象,但不知道从哪里开始。我如何确定我是否已经更新了我的数据库?
CODE
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);
}
}
答案 0 :(得分:2)
如果您正在进行更新,则记录必须已存在于您的表中。 您的应用程序大致需要以下过程:
如果要创建新记录,请跳过步骤1,因此没有ID值。 然后,不需要在步骤3中执行UPDATE,而是需要执行INSERT。
答案 1 :(得分:0)
我认为employeeIf对象应该有一个像getUserId()这样的方法来返回该员工的UserId。我不确定你是如何构建这个employeeIf对象的,但总是应该有一些方法来获取该员工的userId。所以 myPs.setInt(3,“什么在这里”); 应该是这样的 myPs.setInt(3,employeeTf.getUserId());