微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

H2显示DB_CLOSE DELAY的值由SET DB_CLOSE_DELAY设置

如何解决H2显示DB_CLOSE DELAY的值由SET DB_CLOSE_DELAY设置

H2数据库list条以SET开头的命令,尤其是SET DB_CLOSE_DELAY。我想找出DB_CLOSE_DELAY的值是什么。我正在使用JDBC。设置很简单

cx.createStatement.execute("SET DB_CLOSE_DELAY 0")

但以下任何一项都不返回DB_CLOSE_DELAY的实际值:

cx.createStatement.executeQuery("DB_CLOSE_DELAY")
cx.createStatement.executeQuery("VALUES(@DB_CLOSE_DELAY)")
cx.createStatement.executeQuery("GET DB_CLOSE_DELAY")
cx.createStatement.executeQuery("SHOW DB_CLOSE_DELAY")

我们将不胜感激。

解决方法

您可以在INFORMATION_SCHEMA.SETTINGS表中访问此设置和其他设置-例如:

String url = "jdbc:h2:mem:;DB_CLOSE_DELAY=3";
Connection conn = DriverManager.getConnection(url,"sa","the password goes here");
Statement stmt = conn.createStatement();
        
ResultSet rs = stmt.executeQuery("SELECT * FROM INFORMATION_SCHEMA.SETTINGS where name = 'DB_CLOSE_DELAY'");
while (rs.next()) {
    System.out.println(rs.getString("name"));
    System.out.println(rs.getString("value"));
}

在此测试中,我使用了一个未命名的内存数据库,并且在创建数据库时我将延迟明确设置为3秒。

print语句的输出为:

DB_CLOSE_DELAY
3

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。