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

标签 java sql jdbc

我正在尝试使用 Java JDBC 更新我的表。但我不知道如何使用准备好的语句调用我的主键。我尝试做一个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 值。 然后,您将需要执行插入,而不是在步骤 3 中执行更新。

关于java - 如何获取主键来执行更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757149/

相关文章:

java - 使用 JDBC 时密码是字符串还是 char[]?

java - 修改可选<Person>(如果存在)

javascript - Selenium 禁用位置固定内容在拍摄整个网页屏幕截图时删除重复数据

Java Hibernate,一种跟踪 native 异常的方法

java - 棘手的 Android 登录屏幕

mysql - 预设/自定义选择问题的数据库设计

java - 如何从 java 调用带有一个或多个 INPUT 参数的 postgres 过程

mysql - 使用选择插入

sql - 年和月使用什么类型的数据类型?

java - Statement.executeQuery() 在 MySQL 中执行 SELECT 命令时抛出 java.sql.SQLSyntaxErrorException