开发者社区> 问答> 正文

关于sharding-jdbc方法删除问题

java.lang.NoSuchMethodError: com.alibaba.druid.sql.ast.expr.SQLAggregateExpr.getOption()Lcom/alibaba/druid/sql/ast/expr/SQLAggregateExpr$Option; at com.dangdang.ddframe.rdb.sharding.parser.visitor.basic.mysql.MySQLSelectVisitor.visit(MySQLSelectVisitor.java:110) ~[sharding-jdbc-core-1.4.0.jar:na] at com.alibaba.druid.sql.ast.expr.SQLAggregateExpr.accept0(SQLAggregateExpr.java:98) ~[druid-1.0.16.jar:1.0.16] at com.alibaba.druid.sql.ast.SQLObjectImpl.accept(SQLObjectImpl.java:41) ~[druid-1.0.16.jar:1.0.16] at com.alibaba.druid.sql.visitor.SQLASTOutputVisitor.visit(SQLASTOutputVisitor.java:803) ~[druid-1.0.16.jar:1.0.16] at com.dangdang.ddframe.rdb.sharding.parser.visitor.basic.mysql.MySQLSelectVisitor.visit(MySQLSelectVisitor.java:92) ~[sharding-jdbc-core-1.4.0.jar:na]

为啥在1.0.12之后版本把SQLAggregateExpr方法这个给删除了,导致当当的分库框架出错了sharding-jdbc

原提问者GitHub用户z589533

展开
收起
山海行 2023-07-05 21:24:31 78 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您在使用Sharding-JDBC进行删除操作时遇到问题,可能是因为未正确使用Sharding-JDBC的API。以下是一些可能的解决方法:

    使用Sharding-JDBC的API
    请使用Sharding-JDBC提供的API来进行删除操作,例如:

    java
    Copy
    String sql = "DELETE FROM table_name WHERE id = ?";
    try (Connection conn = dataSource.getConnection();
    PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setLong(1, id);
    ps.executeUpdate();
    }
    请注意将"table_name"替换为您的表名,以及将"id"替换为您的删除条件。

    检查Sharding-JDBC的配置
    请检查您的Sharding-JDBC配置是否正确,特别注意以下几个配置项:

    sharding.jdbc.datasource.names:数据源名称,用于指定Sharding-JDBC要管理的数据源。
    sharding.jdbc.config.sharding.tables:分片表配置,用于指定Sharding-JDBC要管理的分片表。
    sharding.jdbc.config.sharding.default-database-strategy:默认分库策略,用于指定Sharding-JDBC的分库策略。
    sharding.jdbc.config.sharding.default-table-strategy:默认分表策略,用于指定Sharding-JDBC的分表策略。
    如果这些配置项不正确,可能会导致Sharding-JDBC无法正确管理数据库连接和执行SQL语句。

    检查数据库连接
    请检查您的数据库连接是否正确,包括数据库连接字符串、用户名、密码等。如果数据库连接不正确,可能会导致Sharding-JDBC无法正确连接数据库,从而无法执行SQL语句。

    2023-07-30 09:36:50
    赞同 展开评论 打赏
  • 这个重构不当,很抱歉,已经修改为com.alibaba.druid.sql.ast.expr.SQLAggregateOption,这个不好改回去了,改回去会导致新的不兼容,能否让sharding-jdbc-core-1.4.0做修改。

    原回答者GitHub用户wenshao

    2023-07-06 11:59:00
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载