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/47891141/

相关文章:

java - 将 JPA 实体表数据显示到 thymeleaf View

java - 将数据插入数据库 - o​​rg.h2.jdbc.JdbcSQLException : Column count does not match; SQL statement:

java - 如何使用 for 循环迭代数组列表并每 X 次执行一个操作? java

java - 覆盖函数的 Android Activity 必须调用 super.*

mysql - mysql中如何使用count if

c# - 如何改变不同工作地点的连接字符串

java - 如何使用 Spring REST 分块发送大文件(REST 客户端)

java - 通过 SSH 连接时无法推送 git 更新和运行 Unix 命令

sql - 使用 between 语句作为组

sql - H2 - DATEADD 完整的一天