【问题标题】:Unable to set timeout variables in JDBC无法在 JDBC 中设置超时变量
【发布时间】:2022-11-12 19:41:00
【问题描述】:

我想在 JDBC/Hikari 池中设置公共超时变量。
为此,我尝试了 JDBC URL 和 Hikari 配置中的变量,但似乎都不起作用。

HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl("jdbc:mysql://*/*?wait_timeout=77&interactive_timeout=78");
hikariConfig.setUsername("*");
hikariConfig.setPassword("*");
hikariConfig.setConnectionTimeout(65 * 1000);
hikariConfig.setIdleTimeout(66 * 1000);

HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);
Connection connection1 = hikariDataSource.getConnection();
Statement statement1 = connection1.createStatement();
ResultSet resultSet1 = null;

resultSet1 = statement1.executeQuery("show variables like '%timeout%'");

仍然在这里获取默认值

while (resultSet1.next()) {
    System.out.println(resultSet1.getString(1) + " " + resultSet1.getString(2));
}

【问题讨论】:

  • setConnectionTimeoutsetIdleTimeout 是 HikariCP 连接池的配置,不会影响(或影响)MySQL 方面的事情。
  • @MarkRotteveel 同意。我想知道设置 mysql 连接属性的方法,例如 hikaricp 将维护的 wait_timeout/interactive_timeout。
  • 我通常不使用 MySQL,如果它有 connection property,请查看 MySQL Connector/J 的文档。乍一看,唯一可能的候选者是connectionAttributes,但这只是我的猜测。

标签: java mysql jdbc hikaricp


【解决方案1】:

明白了,我们可以通过设置数据源属性

hikariConfig.addDataSourceProperty()

参考:https://www.baeldung.com/hikaricp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    相关资源
    最近更新 更多