From 1878b94781ce21bdf5eed0efe2e4068e194a3d16 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Fri, 3 Aug 2018 01:35:33 +0200 Subject: [PATCH] Use batch import for dumped files, its much faster --- .../de/diddiz/LogBlock/DumpedLogImporter.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/diddiz/LogBlock/DumpedLogImporter.java b/src/main/java/de/diddiz/LogBlock/DumpedLogImporter.java index 42af3ed..56cf5b8 100644 --- a/src/main/java/de/diddiz/LogBlock/DumpedLogImporter.java +++ b/src/main/java/de/diddiz/LogBlock/DumpedLogImporter.java @@ -32,26 +32,37 @@ public class DumpedLogImporter implements Runnable { final Statement st = conn.createStatement(); final BufferedWriter writer = new BufferedWriter(new FileWriter(new File(logblock.getDataFolder(), "import/failed.txt"))); int successes = 0, errors = 0; - for (final File sqlFile : imports) { - logblock.getLogger().info("Trying to import " + sqlFile.getName() + " ..."); - final BufferedReader reader = new BufferedReader(new FileReader(sqlFile)); - String line; - while ((line = reader.readLine()) != null) { + try { + for (final File sqlFile : imports) { + String line = null; try { - st.execute(line); - successes++; + logblock.getLogger().info("Trying to import " + sqlFile.getName() + " ..."); + final BufferedReader reader = new BufferedReader(new FileReader(sqlFile)); + while ((line = reader.readLine()) != null) { + if (line.endsWith(";")) { + line = line.substring(0, line.length() - 1); + } + if(!line.isEmpty()) { + st.addBatch(line); + successes++; + } + } + st.executeBatch(); + conn.commit(); + reader.close(); + sqlFile.delete(); + logblock.getLogger().info("Successfully imported " + sqlFile.getName() + "."); } catch (final Exception ex) { logblock.getLogger().warning("Error while importing: '" + line + "': " + ex.getMessage()); writer.write(line + newline); errors++; + ex.printStackTrace(); + return; } } - conn.commit(); - reader.close(); - sqlFile.delete(); - logblock.getLogger().info("Successfully imported " + sqlFile.getName() + "."); + } finally { + writer.close(); } - writer.close(); st.close(); logblock.getLogger().info("Successfully imported stored queue. (" + successes + " rows imported, " + errors + " errors)"); } catch (final Exception ex) {