PlainSelect.getGroupBy()Lnet/sf/jsqlparser/statement/select/GroupByElement;

场景:在搭建MyBatis-Plus配置租户时遇到的异常

完整错误:

java.lang.NoSuchMethodError: net.sf.jsqlparser.statement.select.
PlainSelect.getGroupBy()Lnet/sf/jsqlparser/statement/select/GroupByElement;

 解决方法:jar包的版本不对,我一开始使用了 pagehelper-spring-boot-starter 包,换了很多版本都不行,最后换成了 pagehelper 的jar包

        <!--<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.0</version>
        </dependency>-->        
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.11</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>3.1</version>
        </dependency>

相关异常:Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: net.sf.jsqlparser.statement.update.Update.getTables()Ljava/util/List;

 后面又出现分页失效问题,气傻掉了!!!

    <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
            <exclusions>
                <exclusion>
                    <artifactId>mybatis-spring</artifactId>
                    <groupId>org.mybatis</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>mybatis</artifactId>
                    <groupId>org.mybatis</groupId>
                </exclusion>
            </exclusions>
        </dependency>

因为整合的是 MyBatis-Plus 所以要排除掉 MyBatis 的包

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: net.sf.jsqlparser.statement.select.plainselect.getgroupby()方法返回一个列表,其中包含了查询语句中的所有GROUP BY元素。每个元素都是一个net.sf.jsqlparser.statement.select.groupbyelement对象。 ### 回答2: 在JSqlParser中,Select语句的解析结果是一个叫做PlainSelect的对象。这个对象中,有一个方法getGroupBy(),可以用来获取该Select语句的GROUP BY子句中的所有GroupByElement。具体来说,这个方法会返回一个List<GroupByElement>类型的对象。 GroupByElement是一个包含了表达式和是否需要升序排列的布尔值的对象。因为GROUP BY子句可以包含多个表达式,所以List<GroupByElement>中最多会有多个GroupByElement。 例如,对于一个SELECT语句的GROUP BY子句为GROUP BY a,b DESC的情况,将会返回两个GroupByElement对象。第一个对象包含了表达式a和false的布尔值(表示按照升序排列),第二个对象包含了表达式b和true的布尔值(表示按照降序排列)。 在使用JSqlParser解析Select语句并获取其中的GroupByElement时,需要注意的是,这个方法只有在Group By子句存在的情况下才会返回非空对象。如果该Select语句中没有Group By子句,调用getGroupBy()会返回null。另外,JSqlParser提供的GroupByElement对象仅仅包含了表达式和排序方式等信息,如果需要对GROUP BY子句进行其他的操作,还需要根据具体的业务需要,自行编写相关处理逻辑。 ### 回答3: 在JSQLParser中,net.sf.jsqlparser.statement.select.plainselect.getgroupby()方法返回一个GroupByElement列表,用于表示SELECT语句中的GROUP BY子句。在SQL查询中,GROUP BY子句是用于将一组数据按指定的列进行分组,并对每个分组执行聚合函数,如COUNT、SUM、AVG等。通过使用GROUP BY子句,可以对大量数据进行分类、统计和分析,以获得有用的信息。 GroupByElementJSQLParser中的一个类,表示GROUP BY子句中的元素。一个GroupByElement对象可以包含多个表达式,每个表达式都代表一个分组的依据。例如,SELECT语句中的GROUP BY子句可以是这样的:GROUP BY column1, column2,这表示查询将按列column1和列column2进行分组,每个组的数据将分别进行聚合计算。 在实际开发中,程序员可以使用JSQLParserPlainSelect类来解析SELECT语句,并通过getgroupby()方法获取GROUP BY子句的元素列表。然后,可以遍历列表并处理每个GroupByElement对象,以获取分组的依据和其他相关的信息。 总之,通过使用JSQLParser中的getgroupby()方法,可以方便地获取SELECT语句中的GROUP BY子句,并对查询结果进行分组和聚合计算。这是开发SQL查询应用程序的必备工具之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值