java - SQL "SCRIPT"命令备份h2数据库

标签 java sql h2

我有一个带有h2 数据库的应用程序。我想在 Java 中使用 SCRIPT 命令创建 .sql 文件。

如果我使用准备语句执行它:

PreparedStatement stmt = con.prepareStatement("SCRIPT");
ResultSet rs = stmt.executeQuery();

那我怎样才能在单个字符串中得到完整的结果。我是 Java 的新手,因此无法找到获得该查询结果的出路,因为它不包含其中的列名。

然后我将使用 InputStream 将其写入文件。

最佳答案

如果你想备份到一个文件,你的H2实例的内容作为一个SQL脚本,你可以直接使用SCRIPT TO 'path/to/my/file.sql'

try (Connection con = ...;
     Statement stmt = conn.createStatement()) {
    stmt.executeQuery(String.format("SCRIPT TO '%s'", sqlFilePath));
}

如果您想备份它为ZIP 存档,您可以使用 BACKUP TO 'path/to/my/file.zip'

try (Connection con = ...;
     Statement stmt = conn.createStatement()) {
    stmt.executeQuery(String.format("BACKUP TO '%s'", zipFilePath));
}

关于java - SQL "SCRIPT"命令备份h2数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40592133/

相关文章:

sql - 如何创建一个有效的查询来按特定时间间隔计算记录?

java - 如何使用 Hibernate/JDBC 删除函数?

java - 如何从Map中随机读取一对直到它为空(Java)

java - java网络中的EOFException

sql - 在不使用外部查询的情况下从每个组中获取第一个值的优雅方法

java - H2 数据库 : How to check whether table schema is initialized programmatically?

java - 查找集合字段包含任何给定项目的所有条目

java - 我如何在没有浏览器的情况下以编程方式触发谷歌分析事件?

java - 为简单的 Pojo 数据对象启用自动提交?

sql - 如何动态地从配置单元表中删除分区?