如何在PreparedStatement上设置查询超时?

Chr*_*ris 15 java jdbc

有没有办法让Connection.prepareStatement()抛出错误或返回,而不是等待行锁?

我试图使用一个我没有提交的预准备语句实现跨进程同步,因此它抓取特定行的写锁定.在其他进程中,它尝试准备sql语句,然后在原始进程完成时挂起.我需要这个让我知道它是悬挂的,所以我可以停止该功能,并在重新安排时再试一次.

有任何想法吗?我已经谷歌搜索了几天,似乎无法找到是/否.

Chr*_*ris 19

我是个笨蛋,昨天我想出来,忘了......

要解决它,做

preparedstatement = con.prepareStatement(query);
preparedstatement.setQueryTimeout(seconds);
Run Code Online (Sandbox Code Playgroud)

然后抓住异常.

  • 该文档没有提及“@since Java 7”,其他人也没有提及。 (2认同)