From 3897733d6d440f125824a4a5edd2899fb81b8268 Mon Sep 17 00:00:00 2001 From: mathias Date: Thu, 26 Aug 2021 18:16:16 +0200 Subject: [PATCH] Added the DeletionQuery --- .../sqltoolkit/queries/DeletionQuery.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main/java/de/gnmyt/sqltoolkit/queries/DeletionQuery.java diff --git a/src/main/java/de/gnmyt/sqltoolkit/queries/DeletionQuery.java b/src/main/java/de/gnmyt/sqltoolkit/queries/DeletionQuery.java new file mode 100644 index 0000000..d8f3221 --- /dev/null +++ b/src/main/java/de/gnmyt/sqltoolkit/queries/DeletionQuery.java @@ -0,0 +1,60 @@ +package de.gnmyt.sqltoolkit.queries; + +import de.gnmyt.sqltoolkit.querybuilder.AbstractQuery; +import de.gnmyt.sqltoolkit.querybuilder.SQLQuery; +import de.gnmyt.sqltoolkit.querybuilder.StatementBuilder; + +import java.util.HashMap; + +import static de.gnmyt.sqltoolkit.querybuilder.QueryParameter.TABLE_NAME; +import static de.gnmyt.sqltoolkit.querybuilder.QueryParameter.WHERE_LIST; + +public class DeletionQuery extends AbstractQuery { + + @Override + public void defaults() { + addParameter(WHERE_LIST, new HashMap()); + addParameter(TABLE_NAME, "default"); + } + + /** + * Builds the 'where'-list + * + * @return the 'where'-list as a string + */ + public String buildWhereList() { + StatementBuilder whereString = new StatementBuilder(); + + HashMap whereList = (HashMap) getParameter(WHERE_LIST); + + for (int i = 0; i < whereList.size(); i++) { + if (i == 0) whereString.append("WHERE"); + else whereString.append("AND"); + + whereString.append("`"+whereList.keySet().toArray()[i]+"`").append("=").append("?"); + } + + return whereString.toString(); + } + + /** + * Gets the parameters + * @return the parameters + */ + public Object[] getParameters() { + + HashMap whereList = (HashMap) getParameter(WHERE_LIST); + + return whereList.values().toArray(); + } + + @Override + public SQLQuery build() { + + StatementBuilder builder = new StatementBuilder("DELETE").append("FROM").append((String) getParameter(TABLE_NAME)); + + builder.append(buildWhereList()); + + return new SQLQuery().setStatement(builder.toString()).setParameters(getParameters()); + } +}