java - JDBC:我可以检测查询是否正在运行而不是排队吗?

标签 java jdbc

当我执行 statement.execute() 时,有没有办法知道该语句是真的在执行还是在排队?或者,有没有办法执行 statement.status() 并知道它是否正在运行/排队?

这是为了检测花费很长时间的查询并阻止同一连接上的其他查询。

最佳答案

When I do statement.execute(), is there a way to know if the statement is really being executed or being queued?

不在 JDBC API 中。

Alternatively, is there a way to do statement.status() and know if it's running/queued ?

没有。

That's to detect queries taking a long time and blocking other queries on the same connection.

经典的 XY 问题。同一连接上不应任何其他并发查询。 JDBC 连接不是线程安全的。每个线程都应该有自己的连接。如果您使用线程池,每个方法都应该有自己的连接,差不多。

关于java - JDBC:我可以检测查询是否正在运行而不是排队吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032882/

相关文章:

java - 当方向改变时将对象从一个 fragment 传递到另一个 fragment

java - Java 中的线程

java - 如何使用 openJDK11 运行 Eclipse?

java - 如何关闭用 Java 1.4 编写的 Swing 应用程序中所有打开的对话框?

java - JSP+JDBC问题

java - 为什么我的方法会在中间返回?

python - 在 Python 与 MATLAB 中连接到 JDBC 数据库

java - 我可以使用 FileInputStream 而无需在开始时为其指定路径吗

postgresql - 无法使用 Kafka 将数据从 MySQL 流式传输到 Postgres

java - 与用户相关的线程的响应能力