2016-11-14 86 views
1

我有一個應用程序與h2數據庫。我想在Java中使用SCRIPT命令創建.sql文件。SQL「SCRIPT」命令備份h2數據庫

如果我使用預處理語句執行它:

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

那我該怎麼能夠得到整個結果在一個字符串。我是Java的新手,因此無法找到出路來獲取該查詢的結果,因爲它不包含列名稱。

然後我會用InputStream將它寫入文件。

回答

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.executeQuery替換stmt.executeUpdate –