我可以为单个查询设置JDBC超时吗?

时间:2011-03-22 20:27:46

标签: sql spring jdbc timeout jdbctemplate

我在Tomcat上有一个Web应用程序,它处理数据库连接池,并使用Spring JDBCTemplate执行查询。已经请求我实现一个状态页面,该页面将由心跳过程监视,以确定服务器是否一切正常。

作为其中的一部分,我想进行数据库查询以确定与数据库的连接是否正常。理想情况下,因为它只是一个'选择1',我希望它在10秒内快速返回,以指示如果DB在那段时间没有响应则失败。

但是,我不希望改变我的连接,以便在正常请求时快速超时。

有没有办法使用原始JDBC或Spring JDBC包装器设置每个查询超时?

2 个答案:

答案 0 :(得分:27)

在Statement(或PreparedStatement)对象上使用setQueryTimeout。

答案 1 :(得分:9)

如果您使用spring来管理事务,也可以在事务级别指定超时。 @Transactional(超时= 10)