diff --git a/pom.xml b/pom.xml
index 19f2e97..bc96c39 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,24 +24,13 @@
com.github.jsqlparser
jsqlparser
- 0.9.1
+ 3.2
-
-
- org.springframework.boot
- spring-boot-starter
-
-
- org.springframework.boot
- spring-boot-starter-test
+ org.junit.jupiter
+ junit-jupiter
+ 5.6.3
test
-
-
- org.junit.vintage
- junit-vintage-engine
-
-
diff --git a/src/main/java/com/luop/MySelectVisitor.java b/src/main/java/com/luop/MySelectVisitor.java
index 259e2a2..0363063 100644
--- a/src/main/java/com/luop/MySelectVisitor.java
+++ b/src/main/java/com/luop/MySelectVisitor.java
@@ -1,90 +1,217 @@
package com.luop;
+/**
+ * @author wxn
+ * @date 2023/8/7
+ */
import net.sf.jsqlparser.expression.*;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.*;
-import org.springframework.util.StringUtils;
import java.util.*;
+
/**
- * @Author: luoping
- * @Date: 2019/11/5 09:50
- * @Description:
+ * @Author: wxn
+ * @Date: 2023/05/25
+ * 用递归来解决多层嵌套子查询的问题
*/
-public class MySelectVisitor implements SelectVisitor {
- //用来存储查询SQL语句涉及到的表和字段
- @Override
- public void visit(PlainSelect pSelect) {
- processFromItem(pSelect, pSelect.getFromItem());
- //子查询处理,joins处理
+public class MySelectVisitor {
+ /**
+ * 递归visit,通过对子查询visit并合并columnsMapping实现整体语句的解析
+ * @param setList
+ * @param columnsMapping
+ */
+ public void visit(SetOperationList setList, Map> columnsMapping) {
+ List setSelectBodies = setList.getSelects();
+ List