Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL "SCRIPT" command to backup h2 database

Tags:

java

sql

h2

I have an application with h2 database. I want to create .sql file using SCRIPT command in Java.

If I am executing it using Prepared Statement:

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

Then how can I able to get whole result in single String. I am new to Java so unable to find the way out to get result of that query because it doesn't contains column names in it.

Then I will write it in file using InputStream.

like image 355
عثمان غني Avatar asked Jun 19 '26 01:06

عثمان غني


1 Answers

If you want to backup into a file, the content of your H2 instance as a SQL script, you can directly use SCRIPT TO 'path/to/my/file.sql'.

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

If you want to backup it as a ZIP archive, you can use BACKUP TO 'path/to/my/file.zip'.

try (Connection con = ...;
     Statement stmt = conn.createStatement()) {
    stmt.executeQuery(String.format("BACKUP TO '%s'", zipFilePath));
}
like image 171
Nicolas Filotto Avatar answered Jun 20 '26 14:06

Nicolas Filotto



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!