From f7010f1d3b8ce719157a738483aa6f1eab867624 Mon Sep 17 00:00:00 2001 From: Xephi Date: Wed, 30 Dec 2015 09:59:28 +0100 Subject: [PATCH] Change to QueryType --- .../authme/datasource/queries/Query.java | 108 ++++++++---------- .../authme/datasource/queries/QueryType.java | 9 ++ 2 files changed, 54 insertions(+), 63 deletions(-) create mode 100644 src/main/java/fr/xephi/authme/datasource/queries/QueryType.java diff --git a/src/main/java/fr/xephi/authme/datasource/queries/Query.java b/src/main/java/fr/xephi/authme/datasource/queries/Query.java index 08511e00f..362604163 100644 --- a/src/main/java/fr/xephi/authme/datasource/queries/Query.java +++ b/src/main/java/fr/xephi/authme/datasource/queries/Query.java @@ -1,15 +1,10 @@ package fr.xephi.authme.datasource.queries; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; -import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.datasource.DataSource; public class Query { @@ -21,10 +16,7 @@ public class Query { private List into = new ArrayList(); private List values = new ArrayList(); private List updateSet = new ArrayList(); - private boolean isSelect = false; - private boolean isDelete = false; - private boolean isUpdate = false; - private boolean isInsert = false; + private QueryType type; private String buildQuery = ""; /** @@ -44,10 +36,7 @@ public class Query { public Query select(String selector) { this.selector = selector; - isSelect = true; - isDelete = false; - isUpdate = false; - isInsert = false; + type = QueryType.SELECT; return this; } @@ -57,10 +46,7 @@ public class Query { */ public Query update() { - isSelect = false; - isDelete = false; - isUpdate = true; - isInsert = false; + type = QueryType.UPDATE; return this; } @@ -70,10 +56,7 @@ public class Query { */ public Query delete() { - isSelect = false; - isDelete = true; - isUpdate = false; - isInsert = false; + type = QueryType.DELETE; return this; } @@ -84,10 +67,7 @@ public class Query { */ public Query insert() { - isSelect = false; - isDelete = false; - isUpdate = false; - isInsert = true; + type = QueryType.INSERT; return this; } @@ -149,49 +129,51 @@ public class Query { public Query build(){ StringBuilder str = new StringBuilder(); - if (isSelect) - { - str.append("SELECT ").append(selector).append(" FROM ").append(from); - } - else if (isDelete) - { - str.append("DELETE FROM ").append(from); - } - else if (isUpdate) - { - str.append("UPDATE ").append(from).append(" SET "); - Iterator iter = updateSet.iterator(); - while (iter.hasNext()) + switch (type) { + case SELECT: { - String s = iter.next(); - str.append(s); - if (iter.hasNext()) - str.append(", "); + str.append("SELECT ").append(selector).append(" FROM ").append(from); } - } - else if (isInsert) - { - str.append("INSERT INTO ").append(from).append(" ('"); - Iterator iter = into.iterator(); - while (iter.hasNext()) + case DELETE: { - String s = iter.next(); - str.append(s); - if (iter.hasNext()) - str.append("', '"); - else - str.append("')"); + str.append("DELETE FROM ").append(from); } - str.append(" VALUES ('"); - iter = values.iterator(); - while (iter.hasNext()) + case UPDATE: { - String s = iter.next(); - str.append(s); - if (iter.hasNext()) - str.append("', '"); - else - str.append("')"); + str.append("UPDATE ").append(from).append(" SET "); + Iterator iter = updateSet.iterator(); + while (iter.hasNext()) + { + String s = iter.next(); + str.append(s); + if (iter.hasNext()) + str.append(", "); + } + } + case INSERT: + { + str.append("INSERT INTO ").append(from).append(" ('"); + Iterator iter = into.iterator(); + while (iter.hasNext()) + { + String s = iter.next(); + str.append(s); + if (iter.hasNext()) + str.append("', '"); + else + str.append("')"); + } + str.append(" VALUES ('"); + iter = values.iterator(); + while (iter.hasNext()) + { + String s = iter.next(); + str.append(s); + if (iter.hasNext()) + str.append("', '"); + else + str.append("')"); + } } } if (!where.isEmpty()) diff --git a/src/main/java/fr/xephi/authme/datasource/queries/QueryType.java b/src/main/java/fr/xephi/authme/datasource/queries/QueryType.java new file mode 100644 index 000000000..1f1575edb --- /dev/null +++ b/src/main/java/fr/xephi/authme/datasource/queries/QueryType.java @@ -0,0 +1,9 @@ +package fr.xephi.authme.datasource.queries; + +public enum QueryType { + + DELETE, + INSERT, + SELECT, + UPDATE; +}