SQL "SCRIPT"命令备份h2数据库
SQL "SCRIPT" command to backup h2 database
我有一个带有 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));
}
我有一个带有 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));
}