2011-05-06 34 views
12

有没有办法让各种Connection.prepareStatement()抛出异常或返回,而不是等待行锁?如何在PreparedStatement上设置查询超时?

我想实现跨进程同步使用事先准备好的声明,我不提交,所以它吸引的特定行写锁定。在其他进程中,它会尝试准备sql语句,然后在原始进程结束时挂起。我需要这个让我知道它挂起来了,所以我可以停止这个功能,并且每当它重新安排时再试一次。

任何想法?我一直在谷歌搜索几天,似乎无法找到一个是/否的。

+0

可能是特定的数据库 - 您使用什么数据库管理系统? – DaveH 2011-05-06 15:34:27

+0

8小时后就会启动。 – Chris 2011-05-06 15:47:56

回答

16

我是个傻瓜,我昨天想通了这一点,只是忘了......

为了解决这个问题,做

preparedstatement = con.prepareStatement(query); 
preparedstatement.setQueryTimeout(seconds); 

,然后只捕获异常。

+1

文档没有说的'@Since的Java 7,'我也没有任何人任何事。 – EJP 2015-01-23 18:01:26

+0

我也找不到证据,但我没有看到所有的困难。我已经删除它。 – Chris 2015-01-23 18:25:04