如何在groovysql中设置连接超时?
How to set connection timeout in groovy sql?
有没有办法在groovysql中设置连接超时,还有默认的连接超时是多少?我检查了官方文档 here 但没有得到任何东西。下面是我的代码。
private final def dev_env = [
url:"jdbc:oracle:thin:@//aguat:1521/orcl",
user:"ricky",
password:"ricky",
driver:"oracle.jdbc.OracleDriver"
]
def query="select * from emp where email=?"
def keys=["ricky@gmail.com"]
def Sql sql = Sql.newInstance(dev_env)
def results = []
sql.eachRow(query,keys){row ->
def resultMap = [:]
row.toRowResult().each {k,v-> resultMap.put(k,v) }
results << resultMap
}
Groovy版本:1.8.6
请帮忙
Groovy SQL 不控制超时,这取决于您的驱动程序(在您的情况下是 Oracle)。如果您想为查询设置超时,请查看 this answer.
如果您需要连接级别设置(以便您可以将 Sql 对象重复用于多个查询,并为每个查询应用超时),您需要设置自己的连接并将其传递给 Groovy的Sql门面。像这样
def dev_env = [
url:"jdbc:oracle:thin:@//aguat:1521/orcl",
user:"ricky",
password:"ricky",
driver:"oracle.jdbc.OracleDriver"
]
Class.forName(dev_env['driver'])
def conn = DriverManager.getConnection(dev_env['url'], dev_env['user'],dev_env['password'])
conn.setNetworkTimeout(null, 10000)
def sql = new Sql(conn)
请注意 setNetworkTimeout()
方法已添加到 Java 7。如果您使用的是旧版本的 Java,请查看此 answer(您如果您想避免对 Oracle jar 的编译依赖,可以使用 "oracle.jdbc.OracleDriver"
而不是回答提到的 OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
字段。
同样,因为 Groovy 的 Sql 不改变或控制任何连接设置,默认超时将是 Oracle 驱动程序的默认值。
有没有办法在groovysql中设置连接超时,还有默认的连接超时是多少?我检查了官方文档 here 但没有得到任何东西。下面是我的代码。
private final def dev_env = [
url:"jdbc:oracle:thin:@//aguat:1521/orcl",
user:"ricky",
password:"ricky",
driver:"oracle.jdbc.OracleDriver"
]
def query="select * from emp where email=?"
def keys=["ricky@gmail.com"]
def Sql sql = Sql.newInstance(dev_env)
def results = []
sql.eachRow(query,keys){row ->
def resultMap = [:]
row.toRowResult().each {k,v-> resultMap.put(k,v) }
results << resultMap
}
Groovy版本:1.8.6
请帮忙
Groovy SQL 不控制超时,这取决于您的驱动程序(在您的情况下是 Oracle)。如果您想为查询设置超时,请查看 this answer.
如果您需要连接级别设置(以便您可以将 Sql 对象重复用于多个查询,并为每个查询应用超时),您需要设置自己的连接并将其传递给 Groovy的Sql门面。像这样
def dev_env = [
url:"jdbc:oracle:thin:@//aguat:1521/orcl",
user:"ricky",
password:"ricky",
driver:"oracle.jdbc.OracleDriver"
]
Class.forName(dev_env['driver'])
def conn = DriverManager.getConnection(dev_env['url'], dev_env['user'],dev_env['password'])
conn.setNetworkTimeout(null, 10000)
def sql = new Sql(conn)
请注意 setNetworkTimeout()
方法已添加到 Java 7。如果您使用的是旧版本的 Java,请查看此 answer(您如果您想避免对 Oracle jar 的编译依赖,可以使用 "oracle.jdbc.OracleDriver"
而不是回答提到的 OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
字段。
同样,因为 Groovy 的 Sql 不改变或控制任何连接设置,默认超时将是 Oracle 驱动程序的默认值。