Browse Source

jsqlparser 版本回退到 1.2

miemie 6 years ago
parent
commit
1c0a592153

+ 1 - 1
build.gradle.kts

@@ -27,7 +27,7 @@ val javaVersion = JavaVersion.VERSION_1_8
 val mybatisSpringVersion = "2.0.1"
 val mybatisVersion = "3.5.1"
 val springVersion = "5.1.6.RELEASE"
-val jsqlparserVersion = "2.0"
+val jsqlparserVersion = "1.2"
 val junitVersion = "5.4.0"
 val lombokVersion = "1.18.6"
 val cglibVersion = "3.2.10"

+ 9 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/JSqlParserTest.java

@@ -24,12 +24,13 @@ import net.sf.jsqlparser.statement.update.Update;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 /**
  * SQL 解析测试
  */
 class JSqlParserTest {
 
-
     @Test
     void parser() throws Exception {
         Select select = (Select) CCJSqlParserUtil.parse("SELECT a,b,c FROM tableName t WHERE t.col = 9 and b=c LIMIT 3, ?");
@@ -43,6 +44,13 @@ class JSqlParserTest {
         System.out.println(e.getLeftExpression());
     }
 
+    @Test
+    void notLikeParser() throws Exception {
+        final String targetSql = "SELECT * FROM tableName WHERE id NOT LIKE ?";
+        Select select = (Select) CCJSqlParserUtil.parse(targetSql);
+        assertThat(select.toString()).isEqualTo(targetSql);
+    }
+
 
     @Test
     void updateWhereParser() throws Exception {

+ 2 - 3
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/optimize/JsqlParserCountOptimize.java

@@ -68,15 +68,14 @@ public class JsqlParserCountOptimize implements ISqlParser {
     @Override
     public SqlInfo parser(MetaObject metaObject, String sql) {
         if (logger.isDebugEnabled()) {
-            logger.debug(" JsqlParserCountOptimize sql=" + sql);
+            logger.debug("JsqlParserCountOptimize sql=" + sql);
         }
         SqlInfo sqlInfo = SqlInfo.newInstance();
         try {
             Select selectStatement = (Select) CCJSqlParserUtil.parse(sql);
             PlainSelect plainSelect = (PlainSelect) selectStatement.getSelectBody();
             Distinct distinct = plainSelect.getDistinct();
-            GroupByElement groupByElement = plainSelect.getGroupBy();
-            List<Expression> groupBy = groupByElement.getGroupByExpressions();
+            List<Expression> groupBy = plainSelect.getGroupByColumnReferences();
             List<OrderByElement> orderBy = plainSelect.getOrderByElements();
 
             // 添加包含groupBy 不去除orderBy