Skip to content

Commit

Permalink
[0.3.4] 对参数判断是否已加引号或反引号
Browse files Browse the repository at this point in the history
  • Loading branch information
CarmJos committed Jan 29, 2022
1 parent 5e7519d commit 7acc284
Show file tree
Hide file tree
Showing 19 changed files with 100 additions and 68 deletions.
2 changes: 1 addition & 1 deletion easysql-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-parent</artifactId>
<version>0.3.3</version>
<version>0.3.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
23 changes: 17 additions & 6 deletions easysql-api/src/main/java/cc/carm/lib/easysql/api/SQLBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,22 @@
*/
public interface SQLBuilder {

/**
* 得到承载该Builder的对应{@link SQLManager}
*
* @return {@link SQLManager}
*/
@NotNull SQLManager getManager();
/**
* 得到承载该Builder的对应{@link SQLManager}
*
* @return {@link SQLManager}
*/
@NotNull SQLManager getManager();


static @NotNull String withBackQuote(@NotNull String str) {
str = str.trim();
return str.startsWith("`") && str.endsWith("`") ? str : "`" + str + "`";
}

static @NotNull String withQuote(@NotNull String str) {
str = str.trim();
return str.startsWith("'") && str.endsWith("'") ? str : "'" + str + "'";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
import static cc.carm.lib.easysql.api.SQLBuilder.withQuote;


public interface TableCreateBuilder extends SQLBuilder {

/**
Expand Down Expand Up @@ -63,7 +67,7 @@ public interface TableCreateBuilder extends SQLBuilder {
* @return {@link TableCreateBuilder}
*/
default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings) {
return addColumn("`" + columnName + "` " + settings);
return addColumn(withBackQuote(columnName) + " " + settings);
}

/**
Expand All @@ -76,7 +80,7 @@ default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String
* @return {@link TableCreateBuilder}
*/
default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings, @NotNull String comments) {
return addColumn(columnName, settings + " COMMENT '" + comments + "'");
return addColumn(columnName, settings + " COMMENT " + withQuote(comments));
}

/**
Expand All @@ -91,7 +95,7 @@ default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String
* @return {@link TableCreateBuilder}
*/
TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, @Nullable NumberType numberType,
boolean asPrimaryKey, boolean unsigned);
boolean asPrimaryKey, boolean unsigned);

/**
* 为该表添加一个INT类型的自增主键列
Expand All @@ -104,7 +108,7 @@ TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, @Nullable
* @return {@link TableCreateBuilder}
*/
default TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName,
boolean asPrimaryKey, boolean unsigned) {
boolean asPrimaryKey, boolean unsigned) {
return addAutoIncrementColumn(columnName, NumberType.INT, asPrimaryKey, unsigned);
}

Expand Down Expand Up @@ -146,7 +150,7 @@ default TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName) {
* @return {@link TableCreateBuilder}
*/
default TableCreateBuilder setIndex(@NotNull String columnName,
@NotNull IndexType type) {
@NotNull IndexType type) {
return setIndex(type, null, columnName);
}

Expand All @@ -164,7 +168,7 @@ default TableCreateBuilder setIndex(@NotNull String columnName,
* @return {@link TableCreateBuilder}
*/
TableCreateBuilder setIndex(@NotNull IndexType type, @Nullable String indexName,
@NotNull String columnName, @NotNull String... moreColumns);
@NotNull String columnName, @NotNull String... moreColumns);


/**
Expand Down Expand Up @@ -197,7 +201,7 @@ default TableCreateBuilder addForeignKey(@NotNull String tableColumn, @NotNull S
* @return {@link TableCreateBuilder}
*/
default TableCreateBuilder addForeignKey(@NotNull String tableColumn,
@NotNull String foreignTable, @NotNull String foreignColumn) {
@NotNull String foreignTable, @NotNull String foreignColumn) {
return addForeignKey(tableColumn, null, foreignTable, foreignColumn);
}

Expand All @@ -217,7 +221,7 @@ default TableCreateBuilder addForeignKey(@NotNull String tableColumn,
* @return {@link TableCreateBuilder}
*/
default TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable String constraintName,
@NotNull String foreignTable, @NotNull String foreignColumn) {
@NotNull String foreignTable, @NotNull String foreignColumn) {
return addForeignKey(tableColumn, constraintName, foreignTable, foreignColumn, null, null);
}

Expand All @@ -239,8 +243,8 @@ default TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable
* @return {@link TableCreateBuilder}
*/
TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable String constraintName,
@NotNull String foreignTable, @NotNull String foreignColumn,
@Nullable ForeignKeyRule updateRule, @Nullable ForeignKeyRule deleteRule);
@NotNull String foreignTable, @NotNull String foreignColumn,
@Nullable ForeignKeyRule updateRule, @Nullable ForeignKeyRule deleteRule);

default String defaultTablesSettings() {
return "ENGINE=InnoDB DEFAULT CHARSET=utf8";
Expand Down
2 changes: 1 addition & 1 deletion easysql-impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>easysql-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>0.3.3</version>
<version>0.3.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public long getCreateTime() {
}

protected void outputDebugMessage() {
getManager().debug("#" + getShortID() + " -> { " + getSQLContent() + " }");
getManager().debug("# " + getShortID() + " -> { " + getSQLContent() + " }");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ public SQLUpdateBatchAction addBatch(@NotNull String sql) {

@Override
protected void outputDebugMessage() {
getManager().debug("#" + getShortID() + " -> {");
for (String content : getSQLContents()) getManager().debug(" " + content);
getManager().debug("}");
getManager().debug("# " + getShortID() + " -> [");
for (String content : getSQLContents()) getManager().debug(" { " + content + " }");
getManager().debug("]");

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import java.util.Iterator;
import java.util.LinkedHashMap;

import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;

public abstract class AbstractConditionalBuilder<B extends ConditionalBuilder<B, T>, T extends SQLAction<?>>
extends AbstractSQLBuilder implements ConditionalBuilder<B, T> {

Expand Down Expand Up @@ -53,7 +55,7 @@ public B addCondition(@Nullable String condition) {
public B addCondition(
@NotNull String queryName, @NotNull String operator, @Nullable Object queryValue
) {
addCondition("`" + queryName + "` " + operator + " ?");
addCondition(withBackQuote(queryName) + " " + operator + " ?");
this.conditionParams.add(queryValue);
return getThis();
}
Expand All @@ -74,7 +76,7 @@ public B addCondition(

@Override
public B addNotNullCondition(@NotNull String queryName) {
return addCondition("`" + queryName + "` IS NOT NULL");
return addCondition(withBackQuote(queryName) + " IS NOT NULL");
}


Expand All @@ -84,7 +86,7 @@ public B addTimeCondition(
) {
if (startDate == null && endDate == null) return getThis(); // 都不限定时间,不用判断了
if (startDate != null) {
addCondition("`" + queryName + "` BETWEEN ? AND ?");
addCondition(withBackQuote(queryName) + " BETWEEN ? AND ?");
this.conditionParams.add(startDate);
if (endDate != null) {
this.conditionParams.add(endDate);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import cc.carm.lib.easysql.manager.SQLManagerImpl;
import org.jetbrains.annotations.NotNull;

import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;

public class DeleteBuilderImpl
extends AbstractConditionalBuilder<DeleteBuilder, SQLAction<Integer>>
implements DeleteBuilder {
Expand All @@ -23,7 +25,7 @@ public PreparedSQLUpdateAction build() {

StringBuilder sqlBuilder = new StringBuilder();

sqlBuilder.append("DELETE FROM `").append(getTableName()).append("`");
sqlBuilder.append("DELETE FROM ").append(withBackQuote(getTableName()));

if (hasConditions()) sqlBuilder.append(" ").append(buildConditionSQL());
if (limit > 0) sqlBuilder.append(" ").append(buildLimitSQL());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import java.util.Iterator;
import java.util.List;

import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;

public abstract class InsertBuilderImpl<T extends SQLAction<?>>
extends AbstractSQLBuilder implements InsertBuilder<T> {

Expand All @@ -23,10 +25,10 @@ protected static String buildSQL(String tableName, List<String> columnNames) {
int valueLength = columnNames.size();
StringBuilder sqlBuilder = new StringBuilder();

sqlBuilder.append("INSERT IGNORE INTO `").append(tableName).append("`(");
sqlBuilder.append("INSERT IGNORE INTO ").append(withBackQuote(tableName)).append("(");
Iterator<String> iterator = columnNames.iterator();
while (iterator.hasNext()) {
sqlBuilder.append("`").append(iterator.next()).append("`");
sqlBuilder.append(withBackQuote(iterator.next()));
if (iterator.hasNext()) sqlBuilder.append(", ");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import java.util.Iterator;
import java.util.List;

import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;

public abstract class ReplaceBuilderImpl<T extends SQLAction<?>>
extends AbstractSQLBuilder implements ReplaceBuilder<T> {

Expand All @@ -23,10 +25,10 @@ protected static String buildSQL(String tableName, List<String> columnNames) {
int valueLength = columnNames.size();
StringBuilder sqlBuilder = new StringBuilder();

sqlBuilder.append("REPLACE INTO `").append(tableName).append("`(");
sqlBuilder.append("REPLACE INTO ").append(withBackQuote(tableName)).append("(");
Iterator<String> iterator = columnNames.iterator();
while (iterator.hasNext()) {
sqlBuilder.append("`").append(iterator.next()).append("`");
sqlBuilder.append(withBackQuote(iterator.next()));
if (iterator.hasNext()) sqlBuilder.append(", ");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import static cc.carm.lib.easysql.api.SQLBuilder.withBackQuote;
import static cc.carm.lib.easysql.api.SQLBuilder.withQuote;

public class TableAlterBuilderImpl extends AbstractSQLBuilder implements TableAlterBuilder {

protected final @NotNull String tableName;
Expand All @@ -25,50 +28,50 @@ public TableAlterBuilderImpl(@NotNull SQLManagerImpl manager, @NotNull String ta
@Override
public SQLAction<Integer> renameTo(@NotNull String newTableName) {
return new SQLUpdateActionImpl(getManager(),
"ALTER TABLE `" + getTableName() + "` RENAME TO `" + newTableName + "`"
"ALTER TABLE " + withBackQuote(getTableName()) + " RENAME TO " + withBackQuote(newTableName) + ""
);
}

@Override
public SQLAction<Integer> changeComment(@NotNull String newTableComment) {
return new SQLUpdateActionImpl(getManager(),
"ALTER TABLE `" + getTableName() + "` COMMENT '" + newTableComment + "'"
"ALTER TABLE " + withBackQuote(getTableName()) + " COMMENT " + withQuote(newTableComment)
);
}

@Override
public SQLAction<Integer> setAutoIncrementIndex(int index) {
return new SQLUpdateActionImpl(getManager(),
"ALTER TABLE `" + getTableName() + "` AUTO_INCREMENT=" + index
"ALTER TABLE " + withBackQuote(getTableName()) + " AUTO_INCREMENT=" + index
);
}

@Override
public SQLAction<Integer> addIndex(@NotNull IndexType indexType, @NotNull String indexName, @NotNull String columnName, @NotNull String... moreColumns) {
return createAction(
"ALTER TABLE `" + getTableName() + "` ADD "
"ALTER TABLE " + withBackQuote(getTableName()) + " ADD "
+ TableCreateBuilderImpl.buildIndexSettings(indexType, indexName, columnName, moreColumns)
);
}

@Override
public SQLAction<Integer> dropIndex(@NotNull String indexName) {
return createAction(
"ALTER TABLE `" + getTableName() + "` DROP INDEX `" + indexName + "`"
"ALTER TABLE " + withBackQuote(getTableName()) + " DROP INDEX " + withBackQuote(indexName)
);
}

@Override
public SQLAction<Integer> dropForeignKey(@NotNull String keySymbol) {
return createAction(
"ALTER TABLE `" + getTableName() + "` DROP FOREIGN KEY `" + keySymbol + "`"
"ALTER TABLE " + withBackQuote(getTableName()) + " DROP FOREIGN KEY " + withBackQuote(keySymbol)
);
}

@Override
public SQLAction<Integer> dropPrimaryKey() {
return createAction(
"ALTER TABLE `" + getTableName() + "` DROP PRIMARY KEY"
"ALTER TABLE " + withBackQuote(getTableName()) + " DROP PRIMARY KEY"
);
}

Expand All @@ -77,50 +80,50 @@ public SQLAction<Integer> addColumn(@NotNull String columnName, @NotNull String
String orderSettings = null;
if (afterColumn != null) {
if (afterColumn.length() > 0) {
orderSettings = "AFTER `" + afterColumn + "`";
orderSettings = "AFTER " + withBackQuote(afterColumn);
} else {
orderSettings = "FIRST";
}
}

return createAction(
"ALTER TABLE `" + getTableName() + "` ADD `" + columnName + "` " + settings
"ALTER TABLE " + withBackQuote(getTableName()) + " ADD " + withBackQuote(columnName) + " " + settings
+ (orderSettings != null ? " " + orderSettings : "")
);
}

@Override
public SQLAction<Integer> renameColumn(@NotNull String columnName, @NotNull String newName) {
return createAction(
"ALTER TABLE `" + getTableName() + "` RENAME COLUMN `" + columnName + "` TO `" + newName + "`"
"ALTER TABLE " + withBackQuote(getTableName()) + " RENAME COLUMN " + withBackQuote(columnName) + " TO " + withBackQuote(newName)
);
}

@Override
public SQLAction<Integer> modifyColumn(@NotNull String columnName, @NotNull String settings) {
return createAction(
"ALTER TABLE `" + getTableName() + "` MODIFY COLUMN `" + columnName + "` " + settings
"ALTER TABLE " + withBackQuote(getTableName()) + " MODIFY COLUMN " + withBackQuote(columnName) + " " + settings
);
}

@Override
public SQLAction<Integer> removeColumn(@NotNull String columnName) {
return createAction(
"ALTER TABLE `" + getTableName() + "` DROP `" + columnName + "`"
"ALTER TABLE " + withBackQuote(getTableName()) + " DROP " + withBackQuote(columnName)
);
}

@Override
public SQLAction<Integer> setColumnDefault(@NotNull String columnName, @NotNull String defaultValue) {
return createAction(
"ALTER TABLE `" + getTableName() + "` ALTER `" + columnName + "` SET DEFAULT " + defaultValue
"ALTER TABLE " + withBackQuote(getTableName()) + " ALTER " + withBackQuote(columnName) + " SET DEFAULT " + defaultValue
);
}

@Override
public SQLAction<Integer> removeColumnDefault(@NotNull String columnName) {
return createAction(
"ALTER TABLE `" + getTableName() + "` ALTER `" + columnName + "` DROP DEFAULT"
"ALTER TABLE " + withBackQuote(getTableName()) + " ALTER " + withBackQuote(columnName) + " DROP DEFAULT"
);
}

Expand Down
Loading

0 comments on commit 7acc284

Please sign in to comment.