前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Insert statement does not support sharding table routing to multiple data nodes.【已解决sharding-jdbc错误】

Insert statement does not support sharding table routing to multiple data nodes.【已解决sharding-jdbc错误】

作者头像
掉发的小王
发布于 2022-07-11 08:09:15
发布于 2022-07-11 08:09:15
2.1K01
代码可运行
举报
文章被收录于专栏:小王知识分享小王知识分享
运行总次数:1
代码可运行

错误原因:

导致这个错误的原因: 网上有的说实体类上添加@TableId的主键标识,但是不能解决小编的问题!

还有一种思路,就是自己的分片策略有问题,不是写错了就是sharding-jdbc的版本不同,yml的写法也是不同的。所以只能一点点的去看自己的配置,一定是==配置问题==,分片算法配置问题!!

小编产生的原因是4版本到5版本的改写,差距还是挺大的,==一定要看好格式,别多缩进和少缩进==

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
### Error updating database.  Cause: java.lang.IllegalStateException: Insert statement does not support sharding table routing to multiple data nodes.
### The error may exist in com/example/demo/mapper/UserMapper.java (best guess)
### The error may involve com.example.demo.mapper.UserMapper.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO user  ( name, gender, data )  VALUES  ( ?, ?, ? )
### Cause: java.lang.IllegalStateException: Insert statement does not support sharding table routing to multiple data nodes.] with root cause

java.lang.IllegalStateException: Insert statement does not support sharding table routing to multiple data nodes.
	at com.google.common.base.Preconditions.checkState(Preconditions.java:508) ~[guava-30.0-jre.jar:na]
	at org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.ShardingInsertStatementValidator.postValidate(ShardingInsertStatementValidator.java:101) ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
	at org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.lambda$createRouteContext$1(ShardingSQLRouter.java:57) ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
	at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_121]
	at org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:57) ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
	at 

下面给出5.1.1版本的简单分片yml,小编测试通过的哈!!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  shardingsphere:
    # 是否开启
    datasource:
      # 数据源(逻辑名字)
      names: m1
      # 配置数据源
      m1:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test?useSSL=false&autoReconnect=true&characterEncoding=UTF-8&serverTimezone=UTC
        username: root
        password: root
    # 分片的配置
    rules:
      sharding:
        # 表的分片策略
        tables:
          # 逻辑表的名称
          user:
            # 数据节点配置,采用Groovy表达式
            actual-data-nodes: m1.user_$->{0..1}
            # 配置策略
            table-strategy:
              # 用于单分片键的标准分片场景
              standard:
                sharding-column: cid
                # 分片算法名字
                sharding-algorithm-name: user_inline
            key-generate-strategy: # 主键生成策略
              column: cid  # 主键列
              key-generator-name: snowflake  # 策略算法名称(推荐使用雪花算法)
        key-generators:
          snowflake:
            type: SNOWFLAKE
        sharding-algorithms:
          user_inline:
            type: inline
            props:
              algorithm-expression: user_$->{cid % 2}
    props:
      # 日志显示具体的SQL
      sql-show: true

Q.E.D.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表
小编最近一直在研究关于分库分表的东西,前几天docker安装了mycat实现了分库分表,但是都在说mycat的bug很多。很多人还是倾向于shardingsphere,其实他是一个全家桶,有JDBC、Proxy 和 Sidecar组成,小编今天以最简单的JDBC来简单整合一下! 现在最新版已经是5.1.1,经过一天的研究用于解决了所有问题,完成了单库分表!!
掉发的小王
2022/07/11
2.1K0
SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表
SpringBoot+Mybatis-Plus整合Sharding-JDBC实现单库分表及其相关测试
小编最近一直在研究关于分库分表的东西,前几天docker安装了mycat实现了分库分表,但是都在说mycat的bug很多。很多人还是倾向于shardingsphere,其实他是一个全家桶,有JDBC、Proxy 和 Sidecar组成,小编今天以最简单的JDBC来简单整合一下! 现在最新版已经是5.1.1,小编看了半天也没明白怎么配置,高版本的咱不会,咱只能搞低版本的试试,体验一下,后续在研究高版本的哈!
掉发的小王
2022/07/11
1.6K0
SpringBoot+Mybatis-Plus整合Sharding-JDBC实现单库分表及其相关测试
MYSQLg高级-------分库分表之核心Sharding-JDBC
2 、Sharding-JDBC ( 1 )主要目的是:简化对分库分表之后数据相关操作
默 语
2024/11/20
3600
MYSQLg高级-------分库分表之核心Sharding-JDBC
Sharding-Jdbc 实现读写分离、分库分表
ShardingSphere-Jdbc 定位为轻量级Java框架,在Java的Jdbc层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,可理解为增强版的Jdbc驱动,完全兼容Jdbc和各种ORM框架
民工哥
2021/07/16
7970
Sharding-Jdbc 实现读写分离、分库分表
聊聊 Sharding-JDBC 分库分表
这是《ShardingSphere 进阶》专栏的第一篇文章,介绍一下Sharding-JDBC实现分库分表的详细配置。
码猿技术专栏
2023/05/01
1.4K0
聊聊 Sharding-JDBC 分库分表
一文快速入门分库分表中间件 Sharding-JDBC (必修课)
书接上文 《一文快速入门分库分表(必修课)》,这篇拖了好长的时间,本来计划在一周前就该写完的,结果家庭内部突然人事调整,领导层进行权利交接,随之宣布我正式当爹,紧接着家庭地位滑落至第三名,还给我分配了一个长期维护任务:带娃。看看我们的靓照,标准的小淑女一枚萌萌哒。
程序员小富
2020/10/26
7570
一文快速入门分库分表中间件 Sharding-JDBC (必修课)
Sharding-JDBC:单库分表的实现
通过上面的优化,已经能满足大部分的需求了。只有一种情况需要我们再次进行优化,那就是单表的数量急剧上升,超过了1千万以上,这个时候就要对表进行水平拆分了。
猿天地
2019/07/30
2.8K0
Sharding-JDBC:单库分表的实现
Sharding JDBC案例实战
Sharding-JDBC是分布式数据中间件Sharding-Sphere中的重要组成部分,官方的介绍如下:
用户7353950
2022/06/23
1.4K0
Sharding JDBC案例实战
Sharding-JDBC 使用入门和基本配置
Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。
宜信技术学院
2019/06/28
3.1K0
sharding-jdbc分库连接数优化
Tech 导读 本文以降低sharding-jdbc数据库连接数实践为主线,探究了sharding-jdbc的路由规则,对比分析了四种改造方案,给出了一种自定义分表算法的优化方案。
京东技术
2023/09/11
4860
sharding-jdbc分库连接数优化
SpringBoot 2.x ShardingSphere分库分表实战
在之前我做项目的时候,数据量比较大,单表千万级别的,需要分库分表,于是在网上搜索这方面的开源框架,最常见的就是mycat,sharding-sphere,最终我选择后者,用它来做分库分表比较容易上手。
java架构师
2019/06/05
1.3K0
SpringBoot 2.x ShardingSphere分库分表实战
SpringBoot 2.x ShardingSphere分库分表实战
在之前我做项目的时候,数据量比较大,单表千万级别的,需要分库分表,于是在网上搜索这方面的开源框架,最常见的就是mycat,sharding-sphere,最终我选择后者,用它来做分库分表比较容易上手。
小东啊
2019/06/26
1.6K0
SpringBoot 2.x ShardingSphere分库分表实战
spring boot+sharding jdbc实现分库分表
当我们的数据量比较大(没接触过)就会考虑一下分库分表的策略。当然分库分表又分为多种策略:
shigen
2023/12/03
5330
spring boot+sharding jdbc实现分库分表
ShardingSphere 结合 MySQL 分表与分库
大家好,我是BNTang,最近又去忙其他事情去了,终于有时间来水一篇文章啦,本文给大家介绍一下如何使用 ShardingSphere + MySQL 进行分表分表,分表分库之后我们又该如何进行查询,好了废话不多说开始咯。
程序员NEO
2023/09/10
7580
ShardingSphere 结合 MySQL 分表与分库
Sharding-Jdbc概念与使用技巧
通过分片算法将数据分片,支持通过=、BETWEEN和IN分片。分片算法需要应用方开发者自行实现,可实现的灵活度非常高。
老梁
2019/09/10
1K0
超详细sharding-jdbc分库分表实现(基于spring-boot)
demo 地址:https://github.com/FleyX/demo-project/tree/master/spring-boot/sjdemo 部分内容参考 ShardingSphere 官方文档:官方文档
小森啦啦啦
2019/07/15
9.8K0
超详细sharding-jdbc分库分表实现(基于spring-boot)
sharding-jdbc测试
sharding-jdbc在目前微服务和各种saas软件等数据量日益加大的情况下变得使用的人多了起来。
zhaozhen
2021/07/15
8290
sharding-jdbc测试
ShardingSphere水平分片、多表关联、绑定表、广播表
https://shardingsphere.apache.org/document/5.1.1/cn/features/sharding/concept/inline-expression/
鱼找水需要时间
2023/02/16
3.1K0
ShardingSphere水平分片、多表关联、绑定表、广播表
ShardingSphere解决海量数据分库分表
互联网高速发展,同时也带来的海量数据存储问题。传统关系型数据库的单库单表已经很难支撑,如何高效存储和访问这些数据,成为业内急需解决的问题。解决思路有两个方向:
微观技术
2021/04/19
8270
ShardingSphere解决海量数据分库分表
sharding-sphere源码分析之基础应用篇
进入sharding-spring-boot-mybatis-example模块,先来通过boot和mybatis整合版本整理下基本功能: 关于springboot autoconfigure部分,看下面的sharding-jdbc-spring-boot-starter的截图:
山行AI
2019/07/30
2.6K0
sharding-sphere源码分析之基础应用篇
相关推荐
SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验