2

この操作のタイムアウトを作成するにはどうすればよいですか?

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
}
4

2 に答える 2

9

正しい方法は次のようになると思います。

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 を使用した場所ですが、これでアイデアが得られることを願っています。

于 2013-09-08T16:33:08.243 に答える
0

一般的な答えではなく、接続 URL へのパラメーターを介したデータベース/ドライバー固有の答えがあると思います。

たとえばmysqlの場合、追加するとうまくいくと思いますconnectTimeout=something&socketTimeout=something

于 2013-09-08T16:24:01.663 に答える