From c33ce0e60f7ef49e694139e8754fc9a77df0cc1e Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Tue, 8 Dec 2015 22:24:48 +0100 Subject: [PATCH] Added Batch Execution for PreperadeStatments --- Zutil.jar | Bin 1182343 -> 1182610 bytes src/zutil/db/DBConnection.java | 48 ++++++++++++++++++++++------- src/zutil/db/DBUpgradeHandler.java | 12 +++----- 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/Zutil.jar b/Zutil.jar index d5e96e2e6abef1522678762e11ba8596eaf4190f..7aba28fde9a244eb224eae5dd8cf08840a4664df 100755 GIT binary patch delta 13918 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 QCWdD4>Xt28kqAWp4^*eUOaK4? delta 13903 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 T exec(PreparedStatement stmt, SQLResultHandler handler) throws SQLException{ @@ -228,28 +228,28 @@ public class DBConnection implements Closeable{ } else return null; - }catch(SQLException sqlex){ - logger.log(Level.WARNING, null, sqlex); + }catch(SQLException e){ + logger.log(Level.WARNING, null, e); }finally{ if(result != null){ try { result.close(); - } catch (SQLException sqlex) { - logger.log(Level.WARNING, null, sqlex); + } catch (SQLException e) { + logger.log(Level.WARNING, null, e); } result = null; } } } - }catch(SQLException sqlex){ - logger.log(Level.WARNING, null, sqlex); + }catch(SQLException e){ + logger.log(Level.WARNING, null, e); // Cleanup } finally { if (stmt != null) { try { stmt.close(); - } catch (SQLException sqlex) { - logger.log(Level.WARNING, null, sqlex); + } catch (SQLException e) { + logger.log(Level.WARNING, null, e); } stmt = null; } @@ -257,6 +257,32 @@ public class DBConnection implements Closeable{ return null; } + /** + * Executes an query and cleans up after itself. + * + * @param stmt is the query to run + * @return a array of ints representing the number of updates for each batch statements + */ + public static int[] execBatch(PreparedStatement stmt) throws SQLException{ + try{ + // Execute + return stmt.executeBatch(); + }catch(SQLException e){ + logger.log(Level.WARNING, null, e); + // Cleanup + } finally { + if (stmt != null) { + try { + stmt.close(); + } catch (SQLException e) { + logger.log(Level.WARNING, null, e); + } + stmt = null; + } + } + return new int[0]; + } + /** * Sets the pool that this connection belongs to * diff --git a/src/zutil/db/DBUpgradeHandler.java b/src/zutil/db/DBUpgradeHandler.java index 3287473..2ee3cb7 100755 --- a/src/zutil/db/DBUpgradeHandler.java +++ b/src/zutil/db/DBUpgradeHandler.java @@ -107,17 +107,15 @@ public class DBUpgradeHandler { List refTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); List targetTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); + PreparedStatement stmt; for(String table : targetTables){ if(refTables.contains(table)){ // Get reference structure - PreparedStatement stmt = reference.getPreparedStatement("PRAGMA table_info(?)"); - stmt.setString(1, table); - List refStruct = DBConnection.exec(stmt, new TableStructureResultHandler()); - + List refStruct = reference.exec("PRAGMA table_info("+table+")", + new TableStructureResultHandler()); // Get target structure - stmt = target.getPreparedStatement("PRAGMA table_info(?)"); - stmt.setString(1, table); - List targetStruct = DBConnection.exec(stmt, new TableStructureResultHandler()); + List targetStruct = target.exec("PRAGMA table_info("+table+")", + new TableStructureResultHandler()); // Check existing columns for(DBColumn column : refStruct) {