24282 1 年之前
父节点
当前提交
55c151ab34

+ 2 - 3
my-test/src/main/java/org/example/join/domain/AbstractQueryColumn.java

@@ -13,7 +13,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.StringJoiner;
 
 public abstract class AbstractQueryColumn implements IFormat, IQueryColumn {
@@ -179,14 +178,14 @@ public abstract class AbstractQueryColumn implements IFormat, IQueryColumn {
         return newQueryColumn;
     }
 
-    protected String spliceCompute(String sql, Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
+    protected String spliceCompute(String sql) {
         if (ObjectUtil.isEmpty(queryColumnComputeList)) {
             return sql;
         }
 
         StringJoiner joiner = new StringJoiner(StringPool.EMPTY, StringPool.LEFT_BRACKET, StringPool.RIGHT_BRACKET);
         joiner.add(sql);
-        queryColumnComputeList.forEach(item -> joiner.add(item.toSql(tableAliasMap, paramMap)));
+        queryColumnComputeList.forEach(item -> joiner.add(item.toSql()));
         return joiner.toString();
     }
 

+ 1 - 3
my-test/src/main/java/org/example/join/domain/IFormat.java

@@ -1,9 +1,7 @@
 package org.example.join.domain;
 
-import java.util.Map;
-
 public interface IFormat {
 
-    String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap);
+    String toSql();
 
 }

+ 4 - 6
my-test/src/main/java/org/example/join/domain/QueryColumn.java

@@ -1,9 +1,7 @@
 package org.example.join.domain;
 
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import org.example.join.util.SqlUtil;
-
-import java.util.Map;
+import org.example.join.sql.SqlContext;
 
 public class QueryColumn extends AbstractQueryColumn implements IFormat, IQueryColumn {
 
@@ -30,9 +28,9 @@ public class QueryColumn extends AbstractQueryColumn implements IFormat, IQueryC
     }
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        String sql = SqlUtil.getTableAlias(table, tableAliasMap) + StringPool.DOT + name;
-        return spliceCompute(sql, tableAliasMap, paramMap);
+    public String toSql() {
+        String sql = SqlContext.getTableAlias(table) + StringPool.DOT + name;
+        return spliceCompute(sql);
     }
 
 }

+ 2 - 4
my-test/src/main/java/org/example/join/domain/QueryColumnAlias.java

@@ -3,8 +3,6 @@ package org.example.join.domain;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import lombok.AllArgsConstructor;
 
-import java.util.Map;
-
 @AllArgsConstructor
 public class QueryColumnAlias implements IFormat, IQueryColumn {
 
@@ -19,8 +17,8 @@ public class QueryColumnAlias implements IFormat, IQueryColumn {
     private final IQueryColumn queryColumn;
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        return queryColumn.toSql(tableAliasMap, paramMap) + StringPool.SPACE + alias;
+    public String toSql() {
+        return queryColumn.toSql() + StringPool.SPACE + alias;
     }
 
 }

+ 2 - 4
my-test/src/main/java/org/example/join/domain/QueryColumnCompute.java

@@ -2,8 +2,6 @@ package org.example.join.domain;
 
 import lombok.AllArgsConstructor;
 
-import java.util.Map;
-
 @AllArgsConstructor
 public class QueryColumnCompute implements IFormat {
 
@@ -15,8 +13,8 @@ public class QueryColumnCompute implements IFormat {
     private final Object value;
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        return computeType + (value instanceof IFormat ? ((IFormat) value).toSql(tableAliasMap, paramMap) : value.toString());
+    public String toSql() {
+        return computeType + (value instanceof IFormat ? ((IFormat) value).toSql() : value.toString());
     }
 
 }

+ 3 - 4
my-test/src/main/java/org/example/join/domain/QueryColumnFunction.java

@@ -5,7 +5,6 @@ import org.example.join.util.SqlUtil;
 
 import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 import java.util.StringJoiner;
 
 public class QueryColumnFunction extends AbstractQueryColumn implements IFormat, IQueryColumn {
@@ -27,11 +26,11 @@ public class QueryColumnFunction extends AbstractQueryColumn implements IFormat,
     }
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
+    public String toSql() {
         StringJoiner joiner = new StringJoiner(StringPool.COMMA, StringPool.LEFT_BRACKET, StringPool.RIGHT_BRACKET);
-        columns.forEach(item -> SqlUtil.putValue(tableAliasMap, paramMap, joiner, item));
+        columns.forEach(item -> SqlUtil.putValue(joiner, item));
         String sql = fnName + joiner;
-        return spliceCompute(sql, tableAliasMap, paramMap);
+        return spliceCompute(sql);
     }
 
 }

+ 11 - 11
my-test/src/main/java/org/example/join/domain/QueryCondition.java

@@ -50,9 +50,9 @@ public class QueryCondition implements IFormat {
     }
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
+    public String toSql() {
 
-        String connectStr = queryConditionConnectList.stream().map(item -> item.toSql(tableAliasMap, paramMap)).collect(Collectors.joining());
+        String connectStr = queryConditionConnectList.stream().map(IFormat::toSql).collect(Collectors.joining());
         if (ObjectUtil.isEmpty(value)) {
             if (ObjectUtil.isEmpty(connectStr)) {
                 return StringPool.EMPTY;
@@ -76,36 +76,36 @@ public class QueryCondition implements IFormat {
         }
 
         StringJoiner joiner = new StringJoiner(StringPool.EMPTY);
-        joiner.add(column.toSql(tableAliasMap, paramMap));
+        joiner.add(column.toSql());
 
         if (value instanceof IQueryColumn) {
             joiner.add(logic);
-            joiner.add(((IQueryColumn) value).toSql(tableAliasMap, paramMap));
+            joiner.add(((IQueryColumn) value).toSql());
         } else {
             switch (logic) {
                 case SqlConstant.BETWEEN, SqlConstant.NOT_BETWEEN -> {
                     joiner.add(logic);
                     Object[] valueObj = (Object[]) value;
-                    SqlUtil.putValue(tableAliasMap, paramMap, joiner, valueObj[0]);
+                    SqlUtil.putValue(joiner, valueObj[0]);
                     joiner.add(SqlConstant.AND);
-                    SqlUtil.putValue(tableAliasMap, paramMap, joiner, valueObj[1]);
+                    SqlUtil.putValue(joiner, valueObj[1]);
                 }
                 case SqlConstant.LIKE, SqlConstant.NOT_LIKE -> {
                     joiner.add(logic);
                     joiner.add("concat('%',");
-                    SqlUtil.putValue(tableAliasMap, paramMap, joiner, value);
+                    SqlUtil.putValue(joiner, value);
                     joiner.add(",'%')");
                 }
                 case SqlConstant.LIKE_LEFT, SqlConstant.NOT_LIKE_LEFT -> {
                     joiner.add(SqlConstant.LIKE);
                     joiner.add("concat('%',");
-                    SqlUtil.putValue(tableAliasMap, paramMap, joiner, value);
+                    SqlUtil.putValue(joiner, value);
                     joiner.add(")");
                 }
                 case SqlConstant.LIKE_RIGHT, SqlConstant.NOT_LIKE_RIGHT -> {
                     joiner.add(SqlConstant.LIKE);
                     joiner.add("concat(");
-                    SqlUtil.putValue(tableAliasMap, paramMap, joiner, value);
+                    SqlUtil.putValue(joiner, value);
                     joiner.add(",'%')");
                 }
                 case SqlConstant.IS_NULL, SqlConstant.IS_NOT_NULL -> joiner.add(logic);
@@ -114,13 +114,13 @@ public class QueryCondition implements IFormat {
                     List<Object> inList = new ArrayList<>((Collection<?>) value);
                     joiner.add("(");
                     for (int i = 0; i < inList.size(); i++) {
-                        SqlUtil.putValue(tableAliasMap, paramMap, joiner, inList.get(i));
+                        SqlUtil.putValue(joiner, inList.get(i));
                         joiner.add(inList.size() == i + 1 ? ")" : ",");
                     }
                 }
                 default -> {
                     joiner.add(logic);
-                    SqlUtil.putParam(paramMap, joiner, value);
+                    SqlUtil.putParam(joiner, value);
                 }
             }
         }

+ 2 - 4
my-test/src/main/java/org/example/join/domain/QueryConditionConnect.java

@@ -4,8 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import lombok.AllArgsConstructor;
 
-import java.util.Map;
-
 @AllArgsConstructor
 public class QueryConditionConnect implements IFormat {
 
@@ -17,8 +15,8 @@ public class QueryConditionConnect implements IFormat {
     private final QueryCondition queryCondition;
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        String sql = queryCondition.toSql(tableAliasMap, paramMap);
+    public String toSql() {
+        String sql = queryCondition.toSql();
         if (ObjectUtil.isEmpty(sql)) {
             return StringPool.EMPTY;
         }

+ 2 - 4
my-test/src/main/java/org/example/join/domain/QueryConditionOrder.java

@@ -2,8 +2,6 @@ package org.example.join.domain;
 
 import lombok.AllArgsConstructor;
 
-import java.util.Map;
-
 @AllArgsConstructor
 public class QueryConditionOrder implements IFormat {
 
@@ -18,8 +16,8 @@ public class QueryConditionOrder implements IFormat {
     private final String orderType;
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        return queryColumn.toSql(tableAliasMap, paramMap) + orderType;
+    public String toSql() {
+        return queryColumn.toSql() + orderType;
     }
 
 }

+ 3 - 5
my-test/src/main/java/org/example/join/domain/Table.java

@@ -2,9 +2,7 @@ package org.example.join.domain;
 
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import lombok.Getter;
-import org.example.join.util.SqlUtil;
-
-import java.util.Map;
+import org.example.join.sql.SqlContext;
 
 @Getter
 public class Table implements IFormat, ITable {
@@ -18,8 +16,8 @@ public class Table implements IFormat, ITable {
     }
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        return name + StringPool.SPACE + SqlUtil.getTableAlias(this, tableAliasMap);
+    public String toSql() {
+        return name + StringPool.SPACE + SqlContext.getTableAlias(this);
     }
 
 }

+ 5 - 6
my-test/src/main/java/org/example/join/domain/TableJoin.java

@@ -1,12 +1,13 @@
 package org.example.join.domain;
 
 import lombok.AllArgsConstructor;
+import lombok.Getter;
 import org.example.join.util.SqlConstant;
 
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
+@Getter
 @AllArgsConstructor
 public class TableJoin implements IFormat, ITable {
 
@@ -15,11 +16,9 @@ public class TableJoin implements IFormat, ITable {
     private final List<QueryCondition> queryConditionList;
 
     @Override
-    public String toSql(Map<String, String> tableAliasMap, Map<String, Object> paramMap) {
-        return joinType + table.toSql(tableAliasMap, paramMap) + SqlConstant.ON +
-                queryConditionList.stream()
-                        .map(item -> item.toSql(tableAliasMap, paramMap))
-                        .collect(Collectors.joining(SqlConstant.AND));
+    public String toSql() {
+        return joinType + table.toSql() + SqlConstant.ON +
+                queryConditionList.stream().map(QueryCondition::toSql).collect(Collectors.joining(SqlConstant.AND));
     }
 
 }

+ 0 - 3
my-test/src/main/java/org/example/join/sql/From.java

@@ -18,17 +18,14 @@ public class From<R> extends SqlExecute<R> {
     }
 
     public Join<R> innerJoin(Table table) {
-        sql.putTableAliasMap(table);
         return new Join<>(sql, SqlConstant.INNER_JOIN, table);
     }
 
     public Join<R> leftJoin(Table table) {
-        sql.putTableAliasMap(table);
         return new Join<>(sql, SqlConstant.LEFT_JOIN, table);
     }
 
     public Join<R> rightJoin(Table table) {
-        sql.putTableAliasMap(table);
         return new Join<>(sql, SqlConstant.RIGHT_JOIN, table);
     }
 

+ 20 - 17
my-test/src/main/java/org/example/join/sql/JoinSqlProvider.java

@@ -22,7 +22,16 @@ public class JoinSqlProvider {
 
     public static String getSql(Map<String, Object> paramMap) {
         Sql<?> sql = (Sql<?>) paramMap.get(ISqlRunner.SQL);
-        Map<String, String> tableAliasMap = sql.tableAliasMap;
+        try {
+            SqlContext.init(sql, paramMap);
+            return createSql(sql);
+        } finally {
+            SqlContext.remove();
+        }
+    }
+
+    private static String createSql(Sql<?> sql) {
+
         List<IQueryColumn> queryFieldsList = sql.queryFieldsList;
         List<ITable> queryTableList = sql.queryTableList;
         List<QueryCondition> queryConditionList = sql.queryConditionList;
@@ -32,21 +41,21 @@ public class JoinSqlProvider {
         StringBuilder sqlBuilder = new StringBuilder();
         sqlBuilder
                 .append(SqlConstant.SELECT)
-                .append(listFormatSql(queryFieldsList, tableAliasMap, paramMap, StringPool.COMMA))
+                .append(listFormatSql(queryFieldsList, StringPool.COMMA))
                 .append(SqlConstant.FROM)
-                .append(getQueryTablesSql(queryTableList, tableAliasMap, paramMap));
+                .append(getQueryTablesSql(queryTableList));
 
-        String where = listFormatSql(queryConditionList, tableAliasMap, paramMap, SqlConstant.AND);
+        String where = listFormatSql(queryConditionList, SqlConstant.AND);
         if (StrUtil.isNotEmpty(where)) {
             sqlBuilder.append(SqlConstant.WHERE).append(where);
         }
 
-        String groupBy = listFormatSql(groupByList, tableAliasMap, paramMap, StringPool.COMMA);
+        String groupBy = listFormatSql(groupByList, StringPool.COMMA);
         if (StrUtil.isNotEmpty(groupBy)) {
             sqlBuilder.append(SqlConstant.GROUP_BY).append(groupBy);
         }
 
-        String orderBy = listFormatSql(orderByList, tableAliasMap, paramMap, StringPool.COMMA);
+        String orderBy = listFormatSql(orderByList, StringPool.COMMA);
         if (StrUtil.isNotEmpty(orderBy)) {
             sqlBuilder.append(SqlConstant.ORDER_BY).append(orderBy);
         }
@@ -54,30 +63,24 @@ public class JoinSqlProvider {
         return sqlBuilder.toString();
     }
 
-    private static String getQueryTablesSql(List<ITable> queryTableList,
-                                            Map<String, String> tableAliasMap,
-                                            Map<String, Object> paramMap) {
+    private static String getQueryTablesSql(List<ITable> queryTableList) {
 
         String from = queryTableList.stream()
                 .filter(item -> item instanceof Table)
-                .map(item -> item.toSql(tableAliasMap, paramMap))
+                .map(IFormat::toSql)
                 .collect(Collectors.joining(StringPool.COMMA));
 
         String join = queryTableList.stream()
                 .filter(item -> item instanceof TableJoin)
-                .map(item -> item.toSql(tableAliasMap, paramMap))
+                .map(IFormat::toSql)
                 .collect(Collectors.joining(StringPool.EMPTY));
 
         return from + join;
     }
 
-    private static String listFormatSql(List<? extends IFormat> list,
-                                        Map<String, String> tableAliasMap,
-                                        Map<String, Object> paramMap,
-                                        String joinStr) {
-
+    private static String listFormatSql(List<? extends IFormat> list, String joinStr) {
         return list.stream()
-                .map(item -> item.toSql(tableAliasMap, paramMap))
+                .map(IFormat::toSql)
                 .filter(item -> ObjectUtil.notEqual(item, StringPool.EMPTY))
                 .collect(Collectors.joining(joinStr));
     }

+ 1 - 1
my-test/src/main/java/org/example/join/sql/Select.java

@@ -52,7 +52,7 @@ public class Select<R> {
     }
 
     public From<R> from(Table... tables) {
-        sql.queryTableList.addAll(Arrays.stream(tables).peek(sql::putTableAliasMap).toList());
+        sql.queryTableList.addAll(Arrays.asList(tables));
 
         // 拼接逻辑删除
         if (sql.logic) {

+ 0 - 19
my-test/src/main/java/org/example/join/sql/Sql.java

@@ -1,22 +1,17 @@
 package org.example.join.sql;
 
-import cn.hutool.core.util.StrUtil;
 import org.example.join.domain.IQueryColumn;
 import org.example.join.domain.ITable;
 import org.example.join.domain.QueryColumn;
 import org.example.join.domain.QueryCondition;
 import org.example.join.domain.QueryConditionOrder;
-import org.example.join.domain.Table;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 public class Sql<R> {
 
     protected final Class<R> resultCls;
-    protected final Map<String, String> tableAliasMap = new HashMap<>();
     protected final List<IQueryColumn> queryFieldsList = new ArrayList<>();
     protected final List<ITable> queryTableList = new ArrayList<>();
     protected final List<QueryCondition> queryConditionList = new ArrayList<>();
@@ -34,18 +29,4 @@ public class Sql<R> {
         return new Select<>(new Sql<>(cls));
     }
 
-    protected void putTableAliasMap(Table table) {
-        String alias = table.getAlias();
-        String name = table.getName();
-        if (StrUtil.isNotBlank(alias)) {
-            return;
-        }
-
-        if (StrUtil.isNotBlank(tableAliasMap.get(name))) {
-            throw new IllegalArgumentException(name + " 表已存在,再次连表请取别名");
-        }
-
-        tableAliasMap.put(name, "t" + (tableAliasMap.size() + 1));
-    }
-
 }

+ 90 - 0
my-test/src/main/java/org/example/join/sql/SqlContext.java

@@ -0,0 +1,90 @@
+package org.example.join.sql;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import org.example.join.domain.ITable;
+import org.example.join.domain.Table;
+import org.example.join.domain.TableJoin;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class SqlContext {
+
+    private static final ThreadLocal<Map<String, Object>> threadLocal = new ThreadLocal<>();
+    private static final String PARAM_NUMBER = "paramNumber";
+    private static final String PARAM_MAP = "paramMap";
+    private static final String TABLE_ALIAS_MAP = "tableAliasMap";
+
+    public static void init(Sql<?> sql, Map<String, Object> paramMap) {
+        Map<String, Object> map = new HashMap<>();
+        map.put(PARAM_NUMBER, 1);
+        map.put(PARAM_MAP, paramMap);
+        map.put(TABLE_ALIAS_MAP, createTableAliasMap(sql));
+        threadLocal.set(map);
+    }
+
+    public static void remove() {
+        threadLocal.remove();
+    }
+
+    public static int getParamNumber() {
+        Map<String, Object> map = threadLocal.get();
+        int paramNumber = (int) map.get(PARAM_NUMBER);
+        map.put(PARAM_NUMBER, paramNumber + 1);
+        return paramNumber;
+    }
+
+    public static Map<String, Object> getParamMap() {
+        Map<String, Object> map = threadLocal.get();
+        return (Map<String, Object>) map.get(PARAM_MAP);
+    }
+
+    public static Map<String, String> getTableAliasMap() {
+        Map<String, Object> map = threadLocal.get();
+        return (Map<String, String>) map.get(TABLE_ALIAS_MAP);
+    }
+
+    public static String getTableAlias(Table table) {
+        Map<String, String> tableAliasMap = getTableAliasMap();
+        String tableAlias = table.getAlias();
+        String tableName = table.getName();
+
+        if (StrUtil.isBlank(tableAlias)) {
+            tableAlias = tableAliasMap.get(tableName);
+            if (StrUtil.isBlank(tableAlias)) {
+                throw new IllegalArgumentException("未知连表:" + tableName);
+            }
+        }
+        return tableAlias;
+    }
+
+    private static Map<String, String> createTableAliasMap(Sql<?> sql) {
+        List<ITable> queryTableList = sql.queryTableList;
+        int number = 1;
+        Map<String, String> tableAliasMap = new HashMap<>();
+
+        for (ITable iTable : queryTableList) {
+            Table table;
+
+            if (iTable instanceof Table item) {
+                table = item;
+            } else if (iTable instanceof TableJoin item) {
+                table = item.getTable();
+            } else {
+                throw new IllegalArgumentException("未知ITable类型");
+            }
+
+            if (ObjectUtil.isEmpty(table.getAlias())) {
+                if (tableAliasMap.containsKey(table.getName())) {
+                    throw new IllegalArgumentException(table.getName() + "表已存在,再次连表请取别名");
+                }
+                tableAliasMap.put(table.getName(), "t" + (number++));
+            }
+        }
+
+        return tableAliasMap;
+    }
+
+}

+ 1 - 1
my-test/src/main/java/org/example/join/util/SqlConstant.java

@@ -2,7 +2,7 @@ package org.example.join.util;
 
 public interface SqlConstant {
 
-    String SQL_PARAM = "sqlParam";
+    String SQL_PARAM = "joinSqlParam";
     String SELECT = "select ";
     String FROM = " from ";
     String WHERE = " where ";

+ 7 - 21
my-test/src/main/java/org/example/join/util/SqlUtil.java

@@ -1,31 +1,17 @@
 package org.example.join.util;
 
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import org.example.join.domain.IQueryColumn;
 import org.example.join.domain.Table;
+import org.example.join.sql.SqlContext;
 
-import java.util.Map;
 import java.util.StringJoiner;
 
 public class SqlUtil {
 
-    public static String getTableAlias(Table table, Map<String, String> tableAliasMap) {
-        String tableAlias = table.getAlias();
-        String tableName = table.getName();
-
-        if (StrUtil.isBlank(tableAlias)) {
-            tableAlias = tableAliasMap.get(tableName);
-            if (StrUtil.isBlank(tableAlias)) {
-                throw new IllegalArgumentException("未知连表:" + tableName);
-            }
-        }
-        return tableAlias;
-    }
-
     public static String getTableDelFlag(Table table) {
         TableInfo tableInfo = TableInfoHelper.getTableInfo(table.getName());
         if (!tableInfo.isWithLogicDelete()) {
@@ -36,17 +22,17 @@ public class SqlUtil {
         return logicDeleteFieldInfo.getColumn();
     }
 
-    public static void putParam(Map<String, Object> paramMap, StringJoiner joiner, Object value) {
-        String mapKey = SqlConstant.SQL_PARAM + (paramMap.size() + 1);
+    public static void putParam(StringJoiner joiner, Object value) {
+        String mapKey = SqlConstant.SQL_PARAM + SqlContext.getParamNumber();
         joiner.add(StringPool.HASH_LEFT_BRACE + mapKey + StringPool.RIGHT_BRACE);
-        paramMap.put(mapKey, value);
+        SqlContext.getParamMap().put(mapKey, value);
     }
 
-    public static void putValue(Map<String, String> tableAliasMap, Map<String, Object> paramMap, StringJoiner joiner, Object value) {
+    public static void putValue(StringJoiner joiner, Object value) {
         if (value instanceof IQueryColumn) {
-            joiner.add(((IQueryColumn) value).toSql(tableAliasMap, paramMap));
+            joiner.add(((IQueryColumn) value).toSql());
         } else {
-            putParam(paramMap, joiner, value);
+            putParam(joiner, value);
         }
     }