Команда SQL «SCRIPT» для резервного копирования базы данных h2

2

У меня есть приложение с базой данных h2. Я хочу создать файл .sql используя команду SCRIPT в Java.

Если я выполняю его с помощью Подготовленного заявления:

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

Тогда как я могу получить весь результат в одиночной String. Я новичок в Java, поэтому не могу найти выход, чтобы получить результат этого запроса, потому что он не содержит в нем имен столбцов.

Затем я напишу его в файле с помощью InputStream.

Теги:
h2

1 ответ

2
Лучший ответ

Если вы хотите сделать резервную копию в файле, содержимое вашего экземпляра 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));
}
  • 0
    Хорошо, теперь у меня есть идея, как переместить его в файл. Попробую и обновлю.
  • 1
    Это работает нормально, но stmt.executeUpdate необходимо заменить на stmt.executeQuery

Ещё вопросы

Сообщество Overcoder
Наверх
Меню