【问题标题】:executeQuery() not returning执行查询()不返回
【发布时间】:2009-06-07 06:41:20
【问题描述】:

下面的语句有什么条件

PreparedStatement.executeQuery()

不返回或抛出异常?

【问题讨论】:

  • 我假设您的意思是,在应该抛出异常时未能抛出异常?如果执行没有错误,它不会抛出异常。

标签: java jdbc


【解决方案1】:

这取决于您使用的数据库和配置的隔离级别。一个常见的默认设置是,如果您尝试选择已在另一个尚未提交的事务中更新的记录,则 SELECT 将阻塞。

您是否要选择未提交的数据?你用的是什么数据库?

或者,您的查询可能需要很长时间。通过一些数据库工具运行查询来消除(或确认)这种可能性。

您可能还想调用setQueryTimeout(),这样查询就不会“永远”阻塞。

【讨论】:

  • 好的,这也适用于更新查询吗?在哪里可以找到有关它的更多详细信息。
  • @cletus:如果没有正在运行的查询并在“resultSet =preparedStatement.executeQuery()”这一行停止会发生什么......??
  • 另外,请确保您没有将 sqljdbc4.jar 与 Java 1.6.0_29 一起使用,因为它们不兼容:stackoverflow.com/questions/8986350/…
【解决方案2】:

如果它没有返回,那么它仍在运行您的查询,或者仍在获取结果。

尝试使用某种数据库工具在 java 之外运行查询,并确保它及时执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多