java - 显示由executeUpdate()修改的表

标签 java jdbc

我正在编写一个程序,用户可以手动进行查询,结果显示在 jtable 中,例如:

userQuery= "DELETE FROM cds WHERE Nro_cd = 4;" 

我正在使用这段代码

if (statement.execute(userQuery)){
    ResultSet rs = statement.executeQuery(userQuery);
    table.setModel(DbUtils.resultSetToTableModel(rs));
    JOptionPane.showMessageDialog(null, "Consulta Realizada");
    rs.close();
    }
    else {
        statement.executeUpdate(userQuery);
        JOptionPane.showMessageDialog(null, "Modificacion Realizada");
    }

我的问题是,当我执行更新时,我没有得到结果集,是否有办法从更新的表中进行选择?

最佳答案

My problem is when i execute an update i dont get a resultset ...

这是正确的。您可以获得的最多结果是受影响的行数(即在您的示例中已删除)

... is there anyway to do a select from the table that was udpated?

我假设您询问是否有一种方法可以选择查找在上一个语句中删除/更新的行。

不,没有。

首先,如果行已被删除,它们将不会被查询。 (显然!)

常规数据库没有版本控制。您无法看到插入/更新/删除之前数据库的状态。

<小时/>

如果您需要知道删除或更新了哪些记录,我认为最好的选择是重组代码来执行此操作:

  1. 开始交易:
  2. 选择要更新或删除的行。
  3. 读取选择的结果集并在应用程序中记录您需要的内容......或者可能在临时表中。
  4. 执行更新/删除
  5. 提交交易。

现在您可以使用第 3 步中记录的信息。

<小时/>

另请参阅:

关于java - 显示由executeUpdate()修改的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40569226/

相关文章:

java - Spring Hibernate MySQL - 没有连接?

java - 启动使用Hadoop的守护程序时出错

java - 如何堆叠 getClass()

java - 通过JBDC获取在IBM DB2 V6R1 (AS400)上插入的行数

java - 禁止使用 JDBC 进行所有删除/更新/插入?

java - 删除 Java String 变量的最后一个字符

java - 如何在 JTable 上添加复选框?

java - 将 Java 应用程序连接到我的在线数据库 JDBC MySql

java - 尝试连接到远程 MySQL 数据库时出现 PacketTooBigException

java - Tomcat8 加载错误的 SQL Server 驱动程序/未找到 SQLServerXADataSource