X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=util%2Forg%2Fcacert%2Fgigi%2Futil%2FDatabaseManager.java;h=20df139ac9f8b6f13aa9fc528dd2371d6ab0d177;hp=0e30463edd67a217abf78e93b7e86ab2dcbd9ae4;hb=68e22b81ae47cbc607d92cef050a1ce91017b805;hpb=0259ba983887432dce64ff4757d5145c8715d1af diff --git a/util/org/cacert/gigi/util/DatabaseManager.java b/util/org/cacert/gigi/util/DatabaseManager.java index 0e30463e..20df139a 100644 --- a/util/org/cacert/gigi/util/DatabaseManager.java +++ b/util/org/cacert/gigi/util/DatabaseManager.java @@ -2,9 +2,10 @@ package org.cacert.gigi.util; import java.io.File; import java.io.FileInputStream; -import java.io.FileReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -27,7 +28,7 @@ public class DatabaseManager { } if (args.length == 0) { Properties p = new Properties(); - try (FileReader reader = new FileReader("config/gigi.properties")) { + try (Reader reader = new InputStreamReader(new FileInputStream("config/gigi.properties"), "UTF-8")) { p.load(reader); } args = new String[] { @@ -43,23 +44,30 @@ public class DatabaseManager { public static void run(String[] args, ImportType truncate) throws ClassNotFoundException, SQLException, IOException { Class.forName(args[0]); - Connection conn = DriverManager.getConnection(args[1], args[2], args[3]); - conn.setAutoCommit(false); - Statement stmt = conn.createStatement(); - try (InputStream structure = DatabaseConnection.class.getResourceAsStream("tableStructure.sql")) { - SQLFileManager.addFile(stmt, structure, truncate); - } - File localData = new File("doc/sampleData.sql"); - if (localData.exists()) { - try (FileInputStream f = new FileInputStream(localData)) { - SQLFileManager.addFile(stmt, f, ImportType.PRODUCTION); + final Connection conn = DriverManager.getConnection(args[1], args[2], args[3]); + try { + conn.setAutoCommit(false); + Statement stmt = conn.createStatement(); + try { + try (InputStream structure = DatabaseConnection.class.getResourceAsStream("tableStructure.sql")) { + SQLFileManager.addFile(stmt, structure, truncate); + } + File localData = new File("doc/sampleData.sql"); + if (localData.exists()) { + try (FileInputStream f = new FileInputStream(localData)) { + SQLFileManager.addFile(stmt, f, ImportType.PRODUCTION); + } + } + stmt.executeBatch(); + conn.commit(); + } finally { + stmt.close(); } + } catch (SQLException e) { + e.getNextException().printStackTrace(); + throw e; + } finally { + conn.close(); } - stmt.executeBatch(); - conn.commit(); - stmt.close(); - - conn.close(); } - }