【问题标题】:SQL delete query in java app takes too longjava应用程序中的SQL删除查询耗时太长
【发布时间】:2016-05-06 18:24:27
【问题描述】:

我从 SQL 开始,并尝试将它与 Java 应用程序混合使用。我的表 ZAMESTNANEC 包含 6 行。

当我在 SQL 中发出命令 delete from ZAMESTNANEC where ID = 7; 时,它会立即删除。几毫秒。但是当我在我的 Java 应用程序中使用它时,该应用程序将在处理过程中冻结。我等了 4 分钟,什么也没发生(由于它的工作状态,我不能做任何其他事情)。哦,该行没有被删除。

我阅读了有关删除的主题,但对我没有多大帮助。事实上,它根本没有帮助我。 oracle delete query taking too much time

我试图调试它,但它在这个命令上被冻结了。我不明白为什么在 SQL 中它可以正常工作,而在 Java 应用程序中却不行。 SELECT 等其他命令也可以正常工作。

这里是 JDBC - http://pastebin.com/BRh06yc8 此处按钮的代码

private void jButtonOdeberZamActionPerformed(java.awt.event.ActionEvent evt) {                                                      
       try{
            OracleConnector.setUpConnection("xxxxxxxx", 1521, "ee11",
                    "NAME", "PASSWORD");
            conn = OracleConnector.getConnection();
            stmt = conn.createStatement();
            stmt.executeQuery("delete from ZAMESTNANEC where ID = 7");
        } catch(SQLException ex){
            System.out.println(ex);
        }

【问题讨论】:

  • 你的表是否有太多的外键引用?
  • 你有什么监控工具可以查看数据库中的SQL语句吗?你也可以显示 JDBC 代码吗?
  • 当您既不提供代码也不提供数据时,很难说是什么导致了这种行为。如果您想要有用的答案,请提交minimal reproducible example
  • executeQuery 应该用于预期返回结果的查询。试试executeUpdate 看看是否有帮助。可能是您的应用正在等待接收永远不会回来的结果。
  • 天哪,你是天才汤姆!有用!谢谢。

标签: java sql


【解决方案1】:

executeQuery 应该用于预期返回结果的查询。试试executeUpdate 看看是否有帮助。可能是您的应用程序正在等待接收永远不会回来的结果。 Tom H

谢谢你,汤姆。

【讨论】:

    猜你喜欢
    • 2020-11-09
    • 1970-01-01
    • 2021-06-28
    • 2021-10-26
    • 2015-07-11
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多