【问题标题】:Query timeout for JDBIJDBI 的查询超时
【发布时间】:2017-02-21 11:47:12
【问题描述】:

1) 是否可以为 Dropwizard 的 JDBI mysql 连接器设置 global 的 queryTimout 值?默认值是多少?我不想在每个 DAO 中都使用 @QueryTimeOut。

2) 那么java.​sql.​Statement.Connection呢,networkTimeout参数在哪里,定义为:

驱动程序等待数据库请求完成的毫秒数。如果超出限制,则抛出 SQLException。

我应该将其视为查询超时吗?

【问题讨论】:

标签: java jdbc timeout dropwizard jdbi


【解决方案1】:
Approach1:
@SqlQuery("select count(1) form table")
@QueryTimeout(1)
int findCount()

Approach2:

getHandle()
.createQuery("select count(1) from table")
.setQueryTimeout(1)
.mapTo(Integer.class)

【讨论】:

    【解决方案2】:

    您可以配置一个语句使用者,为每条语句注入它。它可以在可配置的 JDBC 包装器上设置:org.jdbi.v3.core.Jdbi 比如:

    Jdbi.create(datasource)
    .configure(SqlStatements.class, stmt -> {
        stmt.setQueryTimeout(timeout);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      相关资源
      最近更新 更多