🛠️ Code cleanup & added many new features #1

Merged
gnmyt merged 121 commits from features/code-cleanup into master 2021-09-02 13:34:00 +00:00
3 changed files with 27 additions and 46 deletions
Showing only changes of commit 2786ca124f - Show all commits

View File

@ -2,9 +2,9 @@ package de.gnmyt.SQLToolkit.drivers;
import de.gnmyt.SQLToolkit.api.SQLConsumer; import de.gnmyt.SQLToolkit.api.SQLConsumer;
import de.gnmyt.SQLToolkit.factory.TableFactory; import de.gnmyt.SQLToolkit.factory.TableFactory;
import de.gnmyt.SQLToolkit.manager.DataBaseSelection;
import de.gnmyt.SQLToolkit.manager.InsertManager; import de.gnmyt.SQLToolkit.manager.InsertManager;
import de.gnmyt.SQLToolkit.manager.ResultManager; import de.gnmyt.SQLToolkit.manager.ResultManager;
import de.gnmyt.SQLToolkit.manager.SelectionManager;
import de.gnmyt.SQLToolkit.manager.UpdateManager; import de.gnmyt.SQLToolkit.manager.UpdateManager;
import de.gnmyt.SQLToolkit.types.LoginParam; import de.gnmyt.SQLToolkit.types.LoginParam;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -157,8 +157,8 @@ public class MySQLConnection {
* @param tableName The name of the table * @param tableName The name of the table
* @return DatabaseSelection * @return DatabaseSelection
*/ */
public DataBaseSelection selectFrom(String tableName) { public SelectionManager selectFrom(String tableName) {
return new DataBaseSelection(this, tableName); return new SelectionManager(this, tableName);
} }
/** /**
@ -166,8 +166,8 @@ public class MySQLConnection {
* *
* @return DatabaseSelection * @return DatabaseSelection
*/ */
public DataBaseSelection select() { public SelectionManager select() {
return new DataBaseSelection(this); return new SelectionManager(this);
} }
/** /**

View File

@ -7,9 +7,8 @@ import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.atomic.AtomicBoolean;
public class DataBaseSelection { public class SelectionManager {
private final Logger LOG = MySQLConnection.LOG; private final Logger LOG = MySQLConnection.LOG;
@ -26,7 +25,7 @@ public class DataBaseSelection {
* @param connection The current Connection * @param connection The current Connection
* @param tableName The table name * @param tableName The table name
*/ */
public DataBaseSelection(MySQLConnection connection, String tableName) { public SelectionManager(MySQLConnection connection, String tableName) {
this.whereList = new HashMap<>(); this.whereList = new HashMap<>();
this.databaseParameters = new ArrayList<>(); this.databaseParameters = new ArrayList<>();
this.optionalQuery = new ArrayList<>(); this.optionalQuery = new ArrayList<>();
@ -39,7 +38,7 @@ public class DataBaseSelection {
* *
* @param connection The current Connection * @param connection The current Connection
*/ */
public DataBaseSelection(MySQLConnection connection) { public SelectionManager(MySQLConnection connection) {
this.whereList = new HashMap<>(); this.whereList = new HashMap<>();
this.databaseParameters = new ArrayList<>(); this.databaseParameters = new ArrayList<>();
this.optionalQuery = new ArrayList<>(); this.optionalQuery = new ArrayList<>();
@ -64,7 +63,7 @@ public class DataBaseSelection {
* @param tableName The table name * @param tableName The table name
* @return this class * @return this class
*/ */
public DataBaseSelection from(String tableName) { public SelectionManager from(String tableName) {
this.tableName = tableName; this.tableName = tableName;
return this; return this;
} }
@ -76,7 +75,7 @@ public class DataBaseSelection {
* @param value Table value name * @param value Table value name
* @return this class * @return this class
*/ */
public DataBaseSelection where(String column, Object value) { public SelectionManager where(String column, Object value) {
whereList.put(column, value); whereList.put(column, value);
return this; return this;
} }
@ -87,7 +86,7 @@ public class DataBaseSelection {
* @param limit The new limit * @param limit The new limit
* @return this class * @return this class
*/ */
public DataBaseSelection limit(int limit) { public SelectionManager limit(int limit) {
this.limit = limit; this.limit = limit;
return this; return this;
} }
@ -98,7 +97,7 @@ public class DataBaseSelection {
* @param limit The new limit * @param limit The new limit
* @return this class * @return this class
*/ */
public DataBaseSelection limit(String limit) { public SelectionManager limit(String limit) {
this.limit = Integer.parseInt(limit); this.limit = Integer.parseInt(limit);
return this; return this;
} }
@ -121,24 +120,6 @@ public class DataBaseSelection {
return connection.getResultSet(processStatement(), getTempParams().toArray()); return connection.getResultSet(processStatement(), getTempParams().toArray());
} }
/**
* Debug the current Statement
*
* @return this class
*/
public DataBaseSelection printStatement() {
StringBuilder messageBuilder = new StringBuilder();
messageBuilder.append(processStatement());
messageBuilder.append(" | params» ");
AtomicBoolean added = new AtomicBoolean(false);
getTempParams().forEach(v -> {
messageBuilder.append((added.get()) ? ", " : "").append(v);
added.set(true);
});
LOG.debug("Statement: " + messageBuilder);
return this;
}
/** /**
* Adding another factors * Adding another factors
* *
@ -146,7 +127,7 @@ public class DataBaseSelection {
* @param params Optional parameters for the Query * @param params Optional parameters for the Query
* @return this class * @return this class
*/ */
public DataBaseSelection add(String query, Object... params) { public SelectionManager add(String query, Object... params) {
optionalQuery.add(query); optionalQuery.add(query);
this.databaseParameters.addAll(Arrays.asList(params)); this.databaseParameters.addAll(Arrays.asList(params));
return this; return this;
@ -158,18 +139,18 @@ public class DataBaseSelection {
* @return the current statement query * @return the current statement query
*/ */
private String processStatement() { private String processStatement() {
StringBuilder sb = new StringBuilder(); StringBuilder query = new StringBuilder().append("SELECT * FROM ").append(tableName).append(" ");
sb.append("SELECT * FROM ").append(tableName).append(" ");
AtomicBoolean used = new AtomicBoolean(false); for (int i = 0; i < whereList.size(); i++) {
whereList.forEach((k, v) -> { if (i > 0) query.append("WHERE ");
if (!used.get()) sb.append("WHERE "); else query.append("AND ");
else sb.append("AND ");
used.set(true); query.append(whereList.keySet().toArray()[i]).append(" = ? ");
sb.append(k).append(" = ? "); }
});
if (limit != 0) sb.append("LIMIT ").append(limit); if (limit != 0) query.append("LIMIT ").append(limit);
optionalQuery.forEach(v -> sb.append(" ").append(v).append(" ")); optionalQuery.forEach(v -> query.append(" ").append(v).append(" "));
return sb.toString(); return query.toString();
} }
} }

View File

@ -1,8 +1,8 @@
package de.gnmyt.SQLToolkit.storage; package de.gnmyt.SQLToolkit.storage;
import de.gnmyt.SQLToolkit.drivers.MySQLConnection; import de.gnmyt.SQLToolkit.drivers.MySQLConnection;
import de.gnmyt.SQLToolkit.manager.DataBaseSelection;
import de.gnmyt.SQLToolkit.manager.InsertManager; import de.gnmyt.SQLToolkit.manager.InsertManager;
import de.gnmyt.SQLToolkit.manager.SelectionManager;
import de.gnmyt.SQLToolkit.manager.UpdateManager; import de.gnmyt.SQLToolkit.manager.UpdateManager;
import de.gnmyt.SQLToolkit.types.SQLType; import de.gnmyt.SQLToolkit.types.SQLType;
import de.gnmyt.SQLToolkit.types.TableField; import de.gnmyt.SQLToolkit.types.TableField;
@ -121,7 +121,7 @@ public abstract class SQLTable {
* *
* @return the database selection * @return the database selection
*/ */
public DataBaseSelection select() { public SelectionManager select() {
return connection.selectFrom(tableName()); return connection.selectFrom(tableName());
} }