1
mirror of https://github.com/CarmJos/EasySQL.git synced 2026-06-04 23:41:15 +08:00

添加部分 Objects.requireNonNull()

This commit is contained in:
2022-02-13 05:40:46 +08:00
parent e3844493e5
commit 4ce5fba6f1
8 changed files with 130 additions and 115 deletions
@@ -29,7 +29,7 @@ public interface SQLUpdateAction extends SQLAction<Integer> {
/** /**
* 设定该操作是否返回自增键序列。 * 设定该操作是否返回自增键序列。
*
* @param returnGeneratedKey 是否返回自增键序列 * @param returnGeneratedKey 是否返回自增键序列
* @return {@link SQLUpdateAction} * @return {@link SQLUpdateAction}
*/ */
@@ -8,6 +8,8 @@ import cc.carm.lib.easysql.api.enums.NumberType;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Objects;
import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
import static cc.carm.lib.easysql.api.SQLBuilder.withQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withQuote;
@@ -67,6 +69,7 @@ public interface TableCreateBuilder extends SQLBuilder {
* @return {@link TableCreateBuilder} * @return {@link TableCreateBuilder}
*/ */
default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings) { default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings) {
Objects.requireNonNull(columnName, "columnName could not be null");
return addColumn(withBackQuote(columnName) + " " + settings); return addColumn(withBackQuote(columnName) + " " + settings);
} }
@@ -10,6 +10,7 @@ import java.sql.Statement;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class SQLUpdateBatchActionImpl public class SQLUpdateBatchActionImpl
@@ -30,6 +31,7 @@ public class SQLUpdateBatchActionImpl
@Override @Override
public SQLUpdateBatchAction addBatch(@NotNull String sql) { public SQLUpdateBatchAction addBatch(@NotNull String sql) {
Objects.requireNonNull(sql, "sql could not be null");
this.sqlContents.add(sql); this.sqlContents.add(sql);
return this; return this;
} }
@@ -9,139 +9,139 @@ import org.jetbrains.annotations.Nullable;
import java.sql.Time; import java.sql.Time;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
public abstract class AbstractConditionalBuilder<B extends ConditionalBuilder<B, T>, T extends SQLAction<?>> public abstract class AbstractConditionalBuilder<B extends ConditionalBuilder<B, T>, T extends SQLAction<?>>
extends AbstractSQLBuilder implements ConditionalBuilder<B, T> { extends AbstractSQLBuilder implements ConditionalBuilder<B, T> {
ArrayList<String> conditionSQLs = new ArrayList<>(); ArrayList<String> conditionSQLs = new ArrayList<>();
ArrayList<Object> conditionParams = new ArrayList<>(); ArrayList<Object> conditionParams = new ArrayList<>();
int limit = -1; int limit = -1;
public AbstractConditionalBuilder(@NotNull SQLManagerImpl manager) { public AbstractConditionalBuilder(@NotNull SQLManagerImpl manager) {
super(manager); super(manager);
} }
protected abstract B getThis(); protected abstract B getThis();
@Override @Override
public B setConditions(@Nullable String condition) { public B setConditions(@Nullable String condition) {
this.conditionSQLs = new ArrayList<>(); this.conditionSQLs = new ArrayList<>();
this.conditionParams = new ArrayList<>(); this.conditionParams = new ArrayList<>();
if (condition != null) this.conditionSQLs.add(condition); if (condition != null) this.conditionSQLs.add(condition);
return getThis(); return getThis();
} }
@Override @Override
public B setConditions( public B setConditions(
LinkedHashMap<@NotNull String, @Nullable Object> conditions LinkedHashMap<@NotNull String, @Nullable Object> conditions
) { ) {
conditions.forEach(this::addCondition); conditions.forEach(this::addCondition);
return getThis(); return getThis();
} }
@Override @Override
public B addCondition(@Nullable String condition) { public B addCondition(@Nullable String condition) {
this.conditionSQLs.add(condition); this.conditionSQLs.add(condition);
return getThis(); return getThis();
} }
@Override @Override
public B addCondition( public B addCondition(
@NotNull String columnName, @NotNull String operator, @Nullable Object queryValue @NotNull String columnName, @NotNull String operator, @Nullable Object queryValue
) { ) {
addCondition(withBackQuote(columnName) + " " + operator + " ?"); Objects.requireNonNull(columnName, "columnName could not be null");
this.conditionParams.add(queryValue); addCondition(withBackQuote(columnName) + " " + operator + " ?");
return getThis(); this.conditionParams.add(queryValue);
} return getThis();
}
@Override @Override
public B addCondition( public B addCondition(
@NotNull String[] columnNames, @Nullable Object[] queryValues @NotNull String[] columnNames, @Nullable Object[] queryValues
) { ) {
if (queryValues == null || columnNames.length != queryValues.length) { if (queryValues == null || columnNames.length != queryValues.length) {
throw new RuntimeException("queryNames are not match with queryValues"); throw new RuntimeException("queryNames are not match with queryValues");
} }
for (int i = 0; i < columnNames.length; i++) { for (int i = 0; i < columnNames.length; i++) {
addCondition(columnNames[i], queryValues[i]); addCondition(columnNames[i], queryValues[i]);
} }
return getThis(); return getThis();
} }
@Override @Override
public B addNotNullCondition(@NotNull String columnName) { public B addNotNullCondition(@NotNull String columnName) {
return addCondition(withBackQuote(columnName) + " IS NOT NULL"); Objects.requireNonNull(columnName, "columnName could not be null");
} return addCondition(withBackQuote(columnName) + " IS NOT NULL");
}
@Override @Override
public B addTimeCondition( public B addTimeCondition(
@NotNull String columnName, @Nullable Date startDate, @Nullable Date endDate @NotNull String columnName, @Nullable Date startDate, @Nullable Date endDate
) { ) {
if (startDate == null && endDate == null) return getThis(); // 都不限定时间,不用判断了 Objects.requireNonNull(columnName, "columnName could not be null");
if (startDate != null) { if (startDate == null && endDate == null) return getThis(); // 都不限定时间,不用判断了
addCondition(withBackQuote(columnName) + " BETWEEN ? AND ?"); if (startDate != null) {
this.conditionParams.add(startDate); addCondition(withBackQuote(columnName) + " BETWEEN ? AND ?");
if (endDate != null) { this.conditionParams.add(startDate);
this.conditionParams.add(endDate); if (endDate != null) {
} else { this.conditionParams.add(endDate);
if (startDate instanceof java.sql.Date) { } else {
this.conditionParams.add(new java.sql.Date(System.currentTimeMillis())); if (startDate instanceof java.sql.Date) {
} else if (startDate instanceof Time) { this.conditionParams.add(new java.sql.Date(System.currentTimeMillis()));
this.conditionParams.add(new Time(System.currentTimeMillis())); } else if (startDate instanceof Time) {
} else { this.conditionParams.add(new Time(System.currentTimeMillis()));
this.conditionParams.add(new Timestamp(System.currentTimeMillis())); } else {
} this.conditionParams.add(new Timestamp(System.currentTimeMillis()));
} }
} else { }
addCondition(columnName, "<=", endDate); } else {
} addCondition(columnName, "<=", endDate);
return getThis(); }
} return getThis();
}
@Override @Override
public B setLimit(int limit) { public B setLimit(int limit) {
this.limit = limit; this.limit = limit;
return getThis(); return getThis();
} }
protected String buildConditionSQL() { protected String buildConditionSQL() {
if (!conditionSQLs.isEmpty()) { if (!conditionSQLs.isEmpty()) {
StringBuilder conditionBuilder = new StringBuilder(); StringBuilder conditionBuilder = new StringBuilder();
conditionBuilder.append("WHERE").append(" "); conditionBuilder.append("WHERE").append(" ");
Iterator<String> iterator = conditionSQLs.iterator(); Iterator<String> iterator = conditionSQLs.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
conditionBuilder.append(iterator.next()); conditionBuilder.append(iterator.next());
if (iterator.hasNext()) conditionBuilder.append(" AND "); if (iterator.hasNext()) conditionBuilder.append(" AND ");
} }
return conditionBuilder.toString().trim(); return conditionBuilder.toString().trim();
} else { } else {
return null; return null;
} }
} }
protected String buildLimitSQL() { protected String buildLimitSQL() {
return limit > 0 ? "LIMIT " + limit : ""; return limit > 0 ? "LIMIT " + limit : "";
} }
protected ArrayList<Object> getConditionParams() { protected ArrayList<Object> getConditionParams() {
return conditionParams; return conditionParams;
} }
protected boolean hasConditions() { protected boolean hasConditions() {
return this.conditionSQLs != null && !this.conditionSQLs.isEmpty(); return this.conditionSQLs != null && !this.conditionSQLs.isEmpty();
} }
protected boolean hasConditionParams() { protected boolean hasConditionParams() {
return hasConditions() && getConditionParams() != null && !getConditionParams().isEmpty(); return hasConditions() && getConditionParams() != null && !getConditionParams().isEmpty();
} }
} }
@@ -10,6 +10,8 @@ import cc.carm.lib.easysql.builder.AbstractSQLBuilder;
import cc.carm.lib.easysql.manager.SQLManagerImpl; import cc.carm.lib.easysql.manager.SQLManagerImpl;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.Objects;
public class QueryBuilderImpl extends AbstractSQLBuilder implements QueryBuilder { public class QueryBuilderImpl extends AbstractSQLBuilder implements QueryBuilder {
public QueryBuilderImpl(@NotNull SQLManagerImpl manager) { public QueryBuilderImpl(@NotNull SQLManagerImpl manager) {
super(manager); super(manager);
@@ -18,16 +20,19 @@ public class QueryBuilderImpl extends AbstractSQLBuilder implements QueryBuilder
@Override @Override
@Deprecated @Deprecated
public QueryAction withSQL(@NotNull String sql) { public QueryAction withSQL(@NotNull String sql) {
Objects.requireNonNull(sql, "sql could not be null");
return new QueryActionImpl(getManager(), sql); return new QueryActionImpl(getManager(), sql);
} }
@Override @Override
public PreparedQueryAction withPreparedSQL(@NotNull String sql) { public PreparedQueryAction withPreparedSQL(@NotNull String sql) {
Objects.requireNonNull(sql, "sql could not be null");
return new PreparedQueryActionImpl(getManager(), sql); return new PreparedQueryActionImpl(getManager(), sql);
} }
@Override @Override
public TableQueryBuilder inTable(@NotNull String tableName) { public TableQueryBuilder inTable(@NotNull String tableName) {
Objects.requireNonNull(tableName, "tableName could not be null");
return new TableQueryBuilderImpl(getManager(), tableName); return new TableQueryBuilderImpl(getManager(), tableName);
} }
@@ -9,6 +9,8 @@ import cc.carm.lib.easysql.manager.SQLManagerImpl;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Objects;
import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
import static cc.carm.lib.easysql.api.SQLBuilder.withQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withQuote;
@@ -27,6 +29,7 @@ public class TableAlterBuilderImpl extends AbstractSQLBuilder implements TableAl
@Override @Override
public SQLAction<Integer> renameTo(@NotNull String newTableName) { public SQLAction<Integer> renameTo(@NotNull String newTableName) {
Objects.requireNonNull(newTableName, "table name could not be null");
return new SQLUpdateActionImpl(getManager(), return new SQLUpdateActionImpl(getManager(),
"ALTER TABLE " + withBackQuote(getTableName()) + " RENAME TO " + withBackQuote(newTableName) + "" "ALTER TABLE " + withBackQuote(getTableName()) + " RENAME TO " + withBackQuote(newTableName) + ""
); );
@@ -7,6 +7,8 @@ import cc.carm.lib.easysql.manager.SQLManagerImpl;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Objects;
import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
public class TableQueryBuilderImpl public class TableQueryBuilderImpl
@@ -72,6 +74,7 @@ public class TableQueryBuilderImpl
@Override @Override
public TableQueryBuilder orderBy(@NotNull String columnName, boolean asc) { public TableQueryBuilder orderBy(@NotNull String columnName, boolean asc) {
Objects.requireNonNull(columnName, "columnName could not be null");
this.orderBy = "ORDER BY " + withBackQuote(columnName) + " " + (asc ? "ASC" : "DESC"); this.orderBy = "ORDER BY " + withBackQuote(columnName) + " " + (asc ? "ASC" : "DESC");
return this; return this;
} }
@@ -8,10 +8,7 @@ import cc.carm.lib.easysql.manager.SQLManagerImpl;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.*;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote; import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
@@ -60,6 +57,7 @@ public class UpdateBuilderImpl
@Override @Override
public UpdateBuilder addColumnValue(@NotNull String columnName, Object columnValue) { public UpdateBuilder addColumnValue(@NotNull String columnName, Object columnValue) {
Objects.requireNonNull(columnName, "columnName could not be null");
this.columnData.put(columnName, columnValue); this.columnData.put(columnName, columnValue);
return this; return this;
} }
@@ -72,6 +70,7 @@ public class UpdateBuilderImpl
@Override @Override
public UpdateBuilder setColumnValues(@NotNull String[] columnNames, @Nullable Object[] columnValues) { public UpdateBuilder setColumnValues(@NotNull String[] columnNames, @Nullable Object[] columnValues) {
Objects.requireNonNull(columnNames, "columnName could not be null");
if (columnNames.length != columnValues.length) { if (columnNames.length != columnValues.length) {
throw new RuntimeException("columnNames are not match with columnValues"); throw new RuntimeException("columnNames are not match with columnValues");
} }