【发布时间】:2009-06-07 06:41:20
【问题描述】:
下面的语句有什么条件
PreparedStatement.executeQuery()
不返回或抛出异常?
【问题讨论】:
-
我假设您的意思是,在应该抛出异常时未能抛出异常?如果执行没有错误,它不会抛出异常。
下面的语句有什么条件
PreparedStatement.executeQuery()
不返回或抛出异常?
【问题讨论】:
这取决于您使用的数据库和配置的隔离级别。一个常见的默认设置是,如果您尝试选择已在另一个尚未提交的事务中更新的记录,则 SELECT 将阻塞。
您是否要选择未提交的数据?你用的是什么数据库?
或者,您的查询可能需要很长时间。通过一些数据库工具运行查询来消除(或确认)这种可能性。
您可能还想调用setQueryTimeout(),这样查询就不会“永远”阻塞。
【讨论】:
如果它没有返回,那么它仍在运行您的查询,或者仍在获取结果。
尝试使用某种数据库工具在 java 之外运行查询,并确保它及时执行。
【讨论】: