From 4a6f0c690181e9046a21c035095de2f2ec7ef07f Mon Sep 17 00:00:00 2001 From: mathias Date: Thu, 26 Aug 2021 18:21:22 +0200 Subject: [PATCH] Integrated the DeletionQuery into the DeletionManager --- .../sqltoolkit/manager/DeletionManager.java | 64 ++++--------------- 1 file changed, 13 insertions(+), 51 deletions(-) diff --git a/src/main/java/de/gnmyt/sqltoolkit/manager/DeletionManager.java b/src/main/java/de/gnmyt/sqltoolkit/manager/DeletionManager.java index bb544b2..bcaeea6 100644 --- a/src/main/java/de/gnmyt/sqltoolkit/manager/DeletionManager.java +++ b/src/main/java/de/gnmyt/sqltoolkit/manager/DeletionManager.java @@ -1,10 +1,11 @@ package de.gnmyt.sqltoolkit.manager; import de.gnmyt.sqltoolkit.drivers.MySQLConnection; +import de.gnmyt.sqltoolkit.queries.DeletionQuery; +import de.gnmyt.sqltoolkit.querybuilder.QueryParameter; +import de.gnmyt.sqltoolkit.querybuilder.SQLQuery; import org.slf4j.Logger; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; public class DeletionManager { @@ -12,9 +13,8 @@ public class DeletionManager { private final Logger LOG = MySQLConnection.LOG; private final MySQLConnection connection; - private final HashMap whereList; - private final ArrayList databaseParameters; - private final ArrayList optionalQuery; + + private final HashMap whereList = new HashMap<>(); private String tableName; /** @@ -24,11 +24,8 @@ public class DeletionManager { * @param tableName The table name */ public DeletionManager(MySQLConnection connection, String tableName) { - this.whereList = new HashMap<>(); - this.databaseParameters = new ArrayList<>(); - this.optionalQuery = new ArrayList<>(); this.connection = connection; - from(tableName); + this.tableName = tableName; } /** @@ -37,24 +34,9 @@ public class DeletionManager { * @param connection The current connection */ public DeletionManager(MySQLConnection connection) { - this.whereList = new HashMap<>(); - this.databaseParameters = new ArrayList<>(); - this.optionalQuery = new ArrayList<>(); this.connection = connection; } - /** - * Get the temp-generated parameters - * - * @return ArrayList of parameters - */ - private ArrayList getTempParams() { - ArrayList tempParameters = new ArrayList<>(); - whereList.forEach((k, v) -> tempParameters.add(v)); - tempParameters.addAll(databaseParameters); - return tempParameters; - } - /** * Sets the table name * @@ -82,38 +64,18 @@ public class DeletionManager { * Executes the 'delete'-statement */ public void execute() { - connection.update(prepareStatement(), getTempParams().toArray()); + connection.update(build()); } /** - * Adding another factors + * Builds the current statement * - * @param query MySQL Query - * @param params Optional parameters for the Query - * @return this class + * @return the current statement */ - public DeletionManager add(String query, Object... params) { - optionalQuery.add(query); - this.databaseParameters.addAll(Arrays.asList(params)); - return this; - } - - /** - * Get the current statement query - * - * @return the current statement query - */ - private String prepareStatement() { - StringBuilder query = new StringBuilder().append("DELETE FROM ").append(tableName); - - if (!whereList.isEmpty()) query.append(" WHERE "); - - for (int i = 0; i < whereList.size(); i++) { - if (i > 0) query.append(" AND "); - query.append(whereList.keySet().toArray()[i]).append(" = ?"); - } - - return query.toString(); + private SQLQuery build() { + return connection.createQuery(DeletionQuery.class) + .addParameter(QueryParameter.TABLE_NAME, tableName) + .addParameter(QueryParameter.WHERE_LIST, whereList).build(); } }