From 47e87834ef96d51ecfa54c9d92176033945c64db Mon Sep 17 00:00:00 2001
From: FlameyosFlow <89988527+FlameyosSnowy@users.noreply.github.com>
Date: Sun, 12 Oct 2025 12:24:58 +0300
Subject: [PATCH 1/2] Delete
src/main/java/me/cobeine/sqlava/connection/database/query/impl directory
---
.../database/query/impl/DeleteQuery.java | 55 -----------
.../database/query/impl/InsertQuery.java | 88 -----------------
.../database/query/impl/SelectQuery.java | 99 -------------------
.../database/query/impl/UpdateQuery.java | 84 ----------------
4 files changed, 326 deletions(-)
delete mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java
delete mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java
delete mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java
delete mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java
deleted file mode 100644
index eff12e3..0000000
--- a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package me.cobeine.sqlava.connection.database.query.impl;
-
-import me.cobeine.sqlava.connection.database.query.Query;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Cobeine
- */
-
-public class DeleteQuery implements Query {
- private final String table;
- private final List wheres = new ArrayList<>();
- public DeleteQuery(String table) {
- this.table = table;
- }
-
- public DeleteQuery where(String expression) {
- wheres.add(expression + "=?");
- return this;
- }
- public DeleteQuery where(String... expression) {
- for (String s : expression) {
- wheres.add(s + "=?");
- }
- return this;
- }
- public DeleteQuery where(String expression,Object value) {
- wheres.add(expression + "=" + (value instanceof String ? "'" + value +"'" : value));
- return this;
- }
- public DeleteQuery and(String expression) {
- where(expression);
- return this;
- }
- public DeleteQuery and(String expression,Object value) {
- where(expression,value);
- return this;
- }
-
-
- @Override
- public String build() {
- StringBuilder builder = new StringBuilder();
- builder.append("DELETE FROM ").append(table);
-
- if (wheres.size() > 0)
- builder.append(" WHERE ").append(separate(wheres, " AND "));
-
- return builder.toString();
- }
-
-
-}
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java
deleted file mode 100644
index 355ed1c..0000000
--- a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package me.cobeine.sqlava.connection.database.query.impl;
-
-import me.cobeine.sqlava.connection.database.query.Query;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @author Cobeine
- */
-
-public class InsertQuery implements Query {
- private final String table;
- private final LinkedHashMap values = new LinkedHashMap<>();
- private final LinkedHashMap duplicateValues = new LinkedHashMap<>();
- private boolean onDuplicateKey = false;
-
- public InsertQuery(String table) {
- this.table = table;
- }
-
-
- public InsertQuery value(String column, String value) {
- values.put(column, value);
- return this;
- }
-
-
- public InsertQuery value(String column) {
- value(column, "?");
- return this;
- }
- public InsertQuery values(String... column) {
- for (String s : column) {
- values.put(s, "?");
- }
- return this;
- }
-
- public InsertQuery onDuplicateKeyUpdate() {
- onDuplicateKey = true;
- return this;
- }
-
-
- public InsertQuery set(String column, String value) {
- duplicateValues.put(column, value);
- return this;
- }
-
-
- public InsertQuery set(String column) {
- set(column, "VALUES(" + column + ")");
- return this;
- }
-
-
- @Override
- public String build() {
- StringBuilder builder = new StringBuilder();
- builder.append("INSERT INTO ").append(table).append(" (")
- .append(separate(values.keySet())).append(")").append(" VALUES (").append(separate(values.values())).append(")");
-
- if (onDuplicateKey) {
- builder.append(" ON DUPLICATE KEY UPDATE ");
-
- String separator = "";
- if (duplicateValues.isEmpty()) {
- String sep = "";
- for (String s : values.keySet()) {
- builder.append(sep).append(s).append("=").append("VALUES(").append(s).append(")");
- sep = ", ";
- }
- }else {
- for (Map.Entry entry : duplicateValues.entrySet()) {
- String column = entry.getKey();
- String value = entry.getValue();
- builder.append(separator).append(column).append("=").append(value);
- separator = ",";
- }
- }
-
- }
- return builder.toString();
- }
-
-
-}
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java
deleted file mode 100644
index 23c2517..0000000
--- a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package me.cobeine.sqlava.connection.database.query.impl;
-
-import me.cobeine.sqlava.connection.database.query.Query;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author Cobeine
- */
-
-public class SelectQuery implements Query {
- private final String table;
- private final List columns = new ArrayList<>();
- private final List wheres = new ArrayList<>();
- private String orderBy;
- private boolean orderByAscending = false;
- private int limitOffset = 0;
- private int limitRowCount = 0;
-
- public SelectQuery(String table) {
- this.table = table;
- }
-
-
- public SelectQuery column(String column) {
- columns.add(column);
- return this;
- }
- public SelectQuery column(String... column) {
- columns.addAll(Arrays.asList(column));
- return this;
- }
-
- public SelectQuery where(String expression) {
- wheres.add(expression + "=?");
- return this;
- }
- public SelectQuery where(String... expression) {
- for (String s : expression) {
- wheres.add(s + "=?");
- }
- return this;
- }
- public SelectQuery where(String expression,Object value) {
- wheres.add(expression + "=" + (value instanceof String ? "'" + value +"'" : value));
- return this;
- }
- public SelectQuery and(String expression) {
- where(expression);
- return this;
- }
- public SelectQuery and(String expression,Object value) {
- where(expression,value);
- return this;
- }
-
- public SelectQuery orderBy(String column, boolean ascending) {
- this.orderBy = column;
- this.orderByAscending = ascending;
- return this;
- }
-
-
- public SelectQuery limit(int offset, int rowCount) {
- this.limitOffset = offset;
- this.limitRowCount = rowCount;
- return this;
- }
-
- public SelectQuery limit(int rowCount) {
- this.limitOffset = 0;
- this.limitRowCount = rowCount;
- return this;
- }
-
- @Override
- public String build() {
- StringBuilder builder = new StringBuilder();
-
- if (columns.isEmpty()) builder.append("SELECT *").append(" FROM ").append(table);
-
- else builder.append("SELECT ").append(separate(columns)).append(" FROM ").append(table);
-
- if (wheres.size() > 0)
- builder.append(" WHERE ").append(separate(wheres, " AND "));
-
- if (orderBy != null)
- builder.append(" ORDER BY ").append(orderBy).append(orderByAscending ? " ASC" : " DESC");
-
- if (limitRowCount > 0)
- builder.append(" LIMIT ").append(limitOffset).append(",").append(limitRowCount);
-
-
- return builder.toString();
- }
-
-}
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java
deleted file mode 100644
index 01ea170..0000000
--- a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package me.cobeine.sqlava.connection.database.query.impl;
-
-import me.cobeine.sqlava.connection.database.query.Query;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Cobeine
- */
-
-public class UpdateQuery implements Query {
- private final String table;
- private final LinkedHashMap values = new LinkedHashMap<>();
- private final List wheres = new ArrayList<>();
-
- public UpdateQuery(String table) {
- this.table = table;
- }
-
- public UpdateQuery setMultiple(String... column) {
- for (String s : column) {
- set(s, "?");
- }
- return this;
- }
- public UpdateQuery set(String column, String value) {
- values.put(column, value);
- return this;
- }
-
- public UpdateQuery set(String column) {
- set(column, "?");
- return this;
- }
- public UpdateQuery where(String expression) {
- wheres.add(expression + "=?");
- return this;
- }
- public UpdateQuery where(String... expression) {
- for (String s : expression) {
- wheres.add(s + "=?");
- }
- return this;
- }
- public UpdateQuery where(String expression,Object value) {
- wheres.add(expression + "=" + (value instanceof String ? "'" + value +"'" : value));
- return this;
- }
- public UpdateQuery and(String expression) {
- where(expression);
- return this;
- }
- public UpdateQuery and(String expression,Object value) {
- where(expression,value);
- return this;
- }
-
- @Override
- public String build() {
- StringBuilder builder = new StringBuilder();
- builder.append("UPDATE ").append(table).append(" SET ");
-
- String seperator = "";
- for (Map.Entry entry : values.entrySet()) {
-
- String column = entry.getKey();
- String value = entry.getValue();
- builder.append(seperator)
- .append(column)
- .append("=")
- .append(value);
- seperator = ",";
-
- }
-
- if (!wheres.isEmpty())
- builder.append(" WHERE ").append(separate(wheres, " AND "));
-
- return builder.toString();
- }
-}
From 51c634d426df267c946dfd2a2f7672802303bc5e Mon Sep 17 00:00:00 2001
From: FlameyosFlow <89988527+FlameyosSnowy@users.noreply.github.com>
Date: Sun, 12 Oct 2025 12:26:55 +0300
Subject: [PATCH 2/2] Add backticks to table names to the query
Add backticks to table names to the query; This should improve flexibility without letting the user think about it
---
.../database/query/impl/DeleteQuery.java | 56 +++++++++++
.../database/query/impl/InsertQuery.java | 87 +++++++++++++++++
.../database/query/impl/SelectQuery.java | 97 +++++++++++++++++++
.../database/query/impl/UpdateQuery.java | 83 ++++++++++++++++
4 files changed, 323 insertions(+)
create mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java
create mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java
create mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java
create mode 100644 src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java
new file mode 100644
index 0000000..b6d4f26
--- /dev/null
+++ b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/DeleteQuery.java
@@ -0,0 +1,56 @@
+package me.cobeine.sqlava.connection.database.query.impl;
+
+import me.cobeine.sqlava.connection.database.query.Query;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Cobeine
+ */
+
+public class DeleteQuery implements Query {
+ private final String table;
+ private final List wheres = new ArrayList<>();
+
+ public DeleteQuery(String table) {
+ this.table = '`' + table + '`';;
+ }
+
+ public DeleteQuery where(String expression) {
+ wheres.add(expression + "=?");
+ return this;
+ }
+ public DeleteQuery where(String... expression) {
+ for (String s : expression) {
+ wheres.add(s + "=?");
+ }
+ return this;
+ }
+ public DeleteQuery where(String expression,Object value) {
+ wheres.add(expression + "=" + (value instanceof String ? "'" + value +"'" : value));
+ return this;
+ }
+ public DeleteQuery and(String expression) {
+ where(expression);
+ return this;
+ }
+ public DeleteQuery and(String expression,Object value) {
+ where(expression,value);
+ return this;
+ }
+
+
+ @Override
+ public String build() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("DELETE FROM ").append(table);
+
+ if (wheres.size() > 0)
+ builder.append(" WHERE ").append(separate(wheres, " AND "));
+
+ return builder.toString();
+ }
+
+
+}
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java
new file mode 100644
index 0000000..3d7600d
--- /dev/null
+++ b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/InsertQuery.java
@@ -0,0 +1,87 @@
+package me.cobeine.sqlava.connection.database.query.impl;
+
+import me.cobeine.sqlava.connection.database.query.Query;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author Cobeine
+ */
+
+public class InsertQuery implements Query {
+ private final String table;
+ private final LinkedHashMap values = new LinkedHashMap<>();
+ private final LinkedHashMap duplicateValues = new LinkedHashMap<>();
+ private boolean onDuplicateKey = false;
+
+ public InsertQuery(String table) {
+ this.table = '`' + table + '`';;
+ }
+
+ public InsertQuery value(String column, String value) {
+ values.put(column, value);
+ return this;
+ }
+
+
+ public InsertQuery value(String column) {
+ value(column, "?");
+ return this;
+ }
+ public InsertQuery values(String... column) {
+ for (String s : column) {
+ values.put(s, "?");
+ }
+ return this;
+ }
+
+ public InsertQuery onDuplicateKeyUpdate() {
+ onDuplicateKey = true;
+ return this;
+ }
+
+
+ public InsertQuery set(String column, String value) {
+ duplicateValues.put(column, value);
+ return this;
+ }
+
+
+ public InsertQuery set(String column) {
+ set(column, "VALUES(" + column + ")");
+ return this;
+ }
+
+
+ @Override
+ public String build() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("INSERT INTO ").append(table).append(" (")
+ .append(separate(values.keySet())).append(")").append(" VALUES (").append(separate(values.values())).append(")");
+
+ if (onDuplicateKey) {
+ builder.append(" ON DUPLICATE KEY UPDATE ");
+
+ String separator = "";
+ if (duplicateValues.isEmpty()) {
+ String sep = "";
+ for (String s : values.keySet()) {
+ builder.append(sep).append(s).append("=").append("VALUES(").append(s).append(")");
+ sep = ", ";
+ }
+ }else {
+ for (Map.Entry entry : duplicateValues.entrySet()) {
+ String column = entry.getKey();
+ String value = entry.getValue();
+ builder.append(separator).append(column).append("=").append(value);
+ separator = ",";
+ }
+ }
+
+ }
+ return builder.toString();
+ }
+
+
+}
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java
new file mode 100644
index 0000000..948b2c8
--- /dev/null
+++ b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/SelectQuery.java
@@ -0,0 +1,97 @@
+package me.cobeine.sqlava.connection.database.query.impl;
+
+import me.cobeine.sqlava.connection.database.query.Query;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author Cobeine
+ */
+
+public class SelectQuery implements Query {
+ private final String table;
+ private final List columns = new ArrayList<>();
+ private final List wheres = new ArrayList<>();
+ private String orderBy;
+ private boolean orderByAscending = false;
+ private int limitOffset = 0;
+ private int limitRowCount = 0;
+
+ public SelectQuery(String table) {
+ this.table = '`' + table + '`';;
+ }
+
+ public SelectQuery column(String column) {
+ columns.add(column);
+ return this;
+ }
+ public SelectQuery column(String... column) {
+ columns.addAll(Arrays.asList(column));
+ return this;
+ }
+
+ public SelectQuery where(String expression) {
+ wheres.add(expression + "= ?");
+ return this;
+ }
+ public SelectQuery where(String... expression) {
+ for (String s : expression) {
+ wheres.add(s + "= ?");
+ }
+ return this;
+ }
+ public SelectQuery where(String expression,Object value) {
+ wheres.add(expression + "=" + (value instanceof String ? "'" + value +"'" : value));
+ return this;
+ }
+ public SelectQuery and(String expression) {
+ where(expression);
+ return this;
+ }
+ public SelectQuery and(String expression,Object value) {
+ where(expression,value);
+ return this;
+ }
+
+ public SelectQuery orderBy(String column, boolean ascending) {
+ this.orderBy = column;
+ this.orderByAscending = ascending;
+ return this;
+ }
+
+
+ public SelectQuery limit(int offset, int rowCount) {
+ this.limitOffset = offset;
+ this.limitRowCount = rowCount;
+ return this;
+ }
+
+ public SelectQuery limit(int rowCount) {
+ this.limitOffset = 0;
+ this.limitRowCount = rowCount;
+ return this;
+ }
+
+ @Override
+ public String build() {
+ StringBuilder builder = new StringBuilder();
+
+ if (columns.isEmpty()) builder.append("SELECT *").append(" FROM ").append(table);
+
+ else builder.append("SELECT ").append(separate(columns)).append(" FROM ").append(table);
+
+ if (!wheres.isEmpty())
+ builder.append(" WHERE ").append(separate(wheres, " AND "));
+
+ if (orderBy != null)
+ builder.append(" ORDER BY ").append(orderBy).append(orderByAscending ? " ASC" : " DESC");
+
+ if (limitRowCount > 0)
+ builder.append(" LIMIT ").append(limitOffset).append(",").append(limitRowCount);
+
+ return builder.toString();
+ }
+
+}
diff --git a/src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java
new file mode 100644
index 0000000..42b163f
--- /dev/null
+++ b/src/main/java/me/cobeine/sqlava/connection/database/query/impl/UpdateQuery.java
@@ -0,0 +1,83 @@
+package me.cobeine.sqlava.connection.database.query.impl;
+
+import me.cobeine.sqlava.connection.database.query.Query;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Cobeine
+ */
+
+public class UpdateQuery implements Query {
+ private final String table;
+ private final LinkedHashMap values = new LinkedHashMap<>();
+ private final List wheres = new ArrayList<>();
+
+ public UpdateQuery(String table) {
+ this.table = '`' + table + '`';
+ }
+
+ public UpdateQuery setMultiple(String... column) {
+ for (String s : column) {
+ set(s, "?");
+ }
+ return this;
+ }
+ public UpdateQuery set(String column, String value) {
+ values.put(column, value);
+ return this;
+ }
+
+ public UpdateQuery set(String column) {
+ set(column, "?");
+ return this;
+ }
+ public UpdateQuery where(String expression) {
+ wheres.add(expression + "=?");
+ return this;
+ }
+ public UpdateQuery where(String... expression) {
+ for (String s : expression) {
+ wheres.add(s + "=?");
+ }
+ return this;
+ }
+ public UpdateQuery where(String expression,Object value) {
+ wheres.add(expression + "=" + (value instanceof String ? "'" + value +"'" : value));
+ return this;
+ }
+ public UpdateQuery and(String expression) {
+ where(expression);
+ return this;
+ }
+ public UpdateQuery and(String expression,Object value) {
+ where(expression,value);
+ return this;
+ }
+
+ @Override
+ public String build() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("UPDATE ").append(table).append(" SET ");
+
+ String seperator = "";
+ for (Map.Entry entry : values.entrySet()) {
+ String column = entry.getKey();
+ String value = entry.getValue();
+ builder.append(seperator)
+ .append(column)
+ .append("=")
+ .append(value);
+ seperator = ",";
+
+ }
+
+ if (!wheres.isEmpty())
+ builder.append(" WHERE ").append(separate(wheres, " AND "));
+
+ return builder.toString();
+ }
+}