24282 1 rok pred
rodič
commit
4287307131

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

@@ -26,13 +26,15 @@ public class SqlProvider {
         Sql<?> sql = (Sql<?>) paramMap.get(ISqlRunner.SQL);
         try {
 
-            // 初始化sql上下文
+            // 初始化sql上下文数据
             SqlContext.init(paramMap);
 
+            // 没有union返回sql
             if (sql.unionList.isEmpty()) {
                 return toSqlStr(sql);
             }
 
+            // 拼接union sql语句
             StringBuilder sqlSb = new StringBuilder();
             sql.unionList.forEach(itemSql -> appendSql(sqlSb, itemSql));
             appendSql(sqlSb, sql);
@@ -42,9 +44,13 @@ public class SqlProvider {
 
             // 清空sql上下文数据
             SqlContext.remove();
+
         }
     }
 
+    /**
+     * 拼接sql union
+     */
     private static void appendSql(StringBuilder sqlSb, Sql<?> sql) {
         sqlSb.append(sql.unionType)
                 .append(StringPool.LEFT_BRACKET)
@@ -52,6 +58,9 @@ public class SqlProvider {
                 .append(StringPool.RIGHT_BRACKET);
     }
 
+    /**
+     * sql对象转化为字符串
+     */
     private static String toSqlStr(Sql<?> sql) {
 
         // 设置表别名
@@ -105,32 +114,40 @@ public class SqlProvider {
         List<QueryColumn> groupByList = sql.groupByList;
         List<QueryConditionOrder> orderByList = sql.orderByList;
 
+        // select fields from table join table on
         StringBuilder sqlBuilder = new StringBuilder()
                 .append(SqlConstant.SELECT)
                 .append(listFormatSql(queryFieldsList, StringPool.COMMA))
                 .append(SqlConstant.FROM)
                 .append(getQueryTablesSql(queryTableList));
 
+        // where 条件
         String where = listFormatSql(queryConditionList, SqlConstant.AND);
         if (StrUtil.isNotBlank(where)) {
             sqlBuilder.append(SqlConstant.WHERE).append(where);
         }
 
+        // groupBy 条件
         String groupBy = listFormatSql(groupByList, StringPool.COMMA);
         if (StrUtil.isNotBlank(groupBy)) {
             sqlBuilder.append(SqlConstant.GROUP_BY).append(groupBy);
         }
 
+        // orderBy 条件
         String orderBy = listFormatSql(orderByList, StringPool.COMMA);
         if (StrUtil.isNotBlank(orderBy)) {
             sqlBuilder.append(SqlConstant.ORDER_BY).append(orderBy);
         }
 
+        // limit 条件
         sqlBuilder.append(sql.limit);
 
         return sqlBuilder.toString();
     }
 
+    /**
+     * 获取查询表sql
+     */
     private static String getQueryTablesSql(List<ITable> queryTableList) {
 
         String from = queryTableList.stream()
@@ -146,6 +163,9 @@ public class SqlProvider {
         return from + join;
     }
 
+    /**
+     * 拼接sql片段
+     */
     private static String listFormatSql(List<? extends IFormat> list, String joinStr) {
         return list.stream()
                 .filter(Objects::nonNull)