如何在Groovy中为SQL查询配置超时?

时间:2013-09-08 16:18:17

标签: sql groovy timeout

如何为此操作创建超时:?

def db = Sql.newInstance("jdbc:mysql://${mysql_host}:3306/${dbName}", 
    user, pass, 'com.mysql.jdbc.Driver')
db.eachRow(query) { row ->
  // do something with the row
}

2 个答案:

答案 0 :(得分:7)

我相信正确的方法是这样的:

sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:XE", "user", 
                  "pwd", "oracle.jdbc.driver.OracleDriver") 

sql.withStatement { 
   stmt -> stmt.queryTimeout = 10 
} 

sql.eachRow("select * from someTable", { 
 println it 
} ) 

当然,这是我使用Oracle的地方,但我希望这可以给你一个想法。

答案 1 :(得分:0)

我认为可能没有一般性答案,而是通过连接URL的参数进行数据库/驱动程序特定的答案。

E.g。 for mysql,我认为添加connectTimeout=something&socketTimeout=something可能会成功。

相关问题