Sharding-jdbc踩坑记录(一)

2023-11-02

sharding jdbc学习链接

sharding-jdbc版本:2.0.3

springboot版本:2.1.5

连接池:druid 1.1.14

<!--代码片段-->
    <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.14</version>
        </dependency>
   <dependency>
            <groupId>io.shardingjdbc</groupId>
            <artifactId>sharding-jdbc-core</artifactId>
            <version>2.0.3</version>
        </dependency>    

异常1: 

Cannot find data source in sharding rule, invalid actual data node is: 'order_0.t_order_0'
原因:数据库连接名和交给shardingjdbc管理的连接名不匹配不匹配.
解决方式:
              

 /**
     * 配置数据源0,数据源的名称最好要有一定的规则,方便配置分库的计算规则
     *
     * @return
     */
    @Bean(name = "dataSource0")
    @ConfigurationProperties(prefix = "spring.datasource.test1")
    public DataSource dataSource0() {
        return DataSourceBuilder.create().build();
    }

    /**
     * 配置数据源1,数据源的名称最好要有一定的规则,方便配置分库的计算规则
     *
     * @return
     */
    @Bean(name = "dataSource1")
    @ConfigurationProperties(prefix = "spring.datasource.test2")
    public DataSource dataSource1() {
        return DataSourceBuilder.create().build();
    }

    /**
     * 配置数据源规则,即将多个数据源交给sharding-jdbc管理,并且可以设置默认的数据源,
     * 当表没有配置分库规则时会使用默认的数据源
     *
     * @return
     */
    public Map<String, DataSource> createDataSourceMap() {
        //设置分库映射
        Map<String, DataSource> dataSourceMap = new HashMap<>();
        dataSourceMap.put("order_0", dataSource0());
        dataSourceMap.put("order_1", dataSource1());
        return dataSourceMap;
    }
    /**
     * 设置表的node
     *
     * @return
     */
    @Bean
    TableRuleConfiguration getUserTableRuleConfiguration() {
        TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration();
        orderTableRuleConfig.setLogicTable("t_order");
        orderTableRuleConfig.setActualDataNodes("order_${0..1}.t_order_${0..1}");
        orderTableRuleConfig.setKeyGeneratorColumnName("user_id");
        return orderTableRuleConfig;
    }
 /**
     * 配置分库分表策略
     *
     * @return
     * @throws SQLException
     */
    @Bean(name = "shardingDataSource")
    DataSource getShardingDataSource() throws SQLException {
        ShardingRuleConfiguration shardingRuleConfig;
        shardingRuleConfig = new ShardingRuleConfiguration();
        shardingRuleConfig.getTableRuleConfigs().add(getUserTableRuleConfiguration());
        shardingRuleConfig.getBindingTableGroups().add("t_order");
        shardingRuleConfig.setDefaultDatabaseShardingStrategyConfig(new StandardShardingStrategyConfiguration("order_id", DemoDatabaseShardingAlgorithm.class.getName()));
        shardingRuleConfig.setDefaultTableShardingStrategyConfig(new StandardShardingStrategyConfiguration("user_id", DemoTableShardingAlgorithm.class.getName()));
        ShardingRule build = shardingRuleConfig.build(createDataSourceMap());

        return new ShardingDataSource(build);
    }

    
         

这两处标记的地方要一直.因为在第一处标记的地方我们把数据源给了shardingjdbc进行管理,所以我们在给表进行jdbc设置分表规则时,也应该是拿在sharding中数据源的名字.

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sharding-jdbc踩坑记录(一) 的相关文章

随机推荐

  • 13天带你了解C++ ---DAY10 C++之vector

    目录 1 string容器 2 构造函数和析构函数的相关操作 3 迭代器 4 容量相关 5 元素访问相关 6 元素遍历相关 7 元素操作相关 8 vector模拟实现 1 string容器 vector容器是C 标准模板库提供的管理任意元素
  • mysql导入csv中文数据乱码问题分析与解决

    摘要 解决csv文件向mysql导入含有中文数据 导入后中文出现乱码问题 结论 在导入含中文字符时注意两个问题 第一 告诉Mysql文件的编码是什么 第二 数据库表中的列编码要设置成支持中文的字符集 导入源数据 SQL代码 LOAD DAT
  • mysql语句

    各种sql语句 一 引言 二 sql基础语句 1 sql新增语句 2 sql查询语句 3 sql修改语句 4 sql删除语句 5 sql其他语句 5 1 sql倒序 正序查询 5 2 sql表行数查询 三 sql较有深度语句 1 sql主从
  • Linux ip地址报错(Temporary failure in name resolution)活检地址检查

    1 项目健康检查报错 报错信息 java net UnknownHostException Temporary failure in name resolution 解决办法 hostname 查看主机名 hostname i 查看本机对应
  • PHPstorm必备插件推荐

    1 env files support 对 env 文件的支持 2 ignore 对 ignore 文件的支持 3 Ideolog 对 log 文件的支持 4 Chinese Simplified Language Pack 中文语言包 官
  • 抖音视频号情感类短视频爆火,背后有什么特点?有什么值得借鉴

    有一些人渐渐不联系了 不是因为淡了远了 而是没有合适的身份陪伴 没有合适的理由联络 没有合适的机会见面 只能放在心里偶尔回忆 经常想念 明明只是一张动图 但却可以让人自动脑补了早期抖音情感博主在线念白的腔调 没错 这些曾经在抖音快手风靡一时
  • 阿里犸良导出的json文件怎么使用

    犸良是什么 犸良作为一站式动效制作平台 通过海量的动效素材以及可视化编辑能力 帮助零基础的用户轻松完成动效制作 支持全平台iOS Android H5 小程序 无论是营销展位 活动页面 空状态还是产品icon 让动效更简单 官网地址 htt
  • pear-admin-flask开源后台模板(适合于毕设)

    Pear Admin Flask 开 箱 即 用 的 Flask 快 速 开 发 平 台 预 览 官 网 群聊 社区 项目简介 Pear Admin Flask 基于 Flask 的后台管理系统 拥抱应用广泛的python语言 通过使用本系
  • C# 如何向String[]字符数组插入数据

    C 如何向String 字符数组插入数据 思路 了解 由于数组是非动态的 不能进行动态的添加 思路 首先将string 字符数组转换成list 第二给list添加数据 最后把list转换成string 数组 String arrs new
  • 怎么上传文件到spark服务器上,从SFTP服务器加载文件到spark RDD

    您可以以下方式使用spark sftp库在你的程序 火花2 x的 Maven的依赖 com springml spark sftp 2 11 1 1 0 SBT依赖 libraryDependencies com springml spar
  • Effective(Modern)C++笔记01

    Effectice C 01 条款01 视C 为一个语言联邦 C 区块 blocks 语句 statements 预处理 preprocessor 内置数据类型 built in data types 数组 arrays 指针 pointe
  • 安装zookeeper集群,开启正常,但status显示./zkServer.sh :line 170:exec :java:not found

    笔者安装过很多次zookeeper集群 但是在一个新的生产环境上遇到了zookeeper的启动异常问题 可以先使用 zkServer sh start foreground 来查看详细报错信息 若发现是 zkServer sh line 1
  • Segment Anything开源项目学习记录

    一 什么是Segment Anything开源项目 Introduction We introduce the Segment Anything SA project a new task model and dataset for ima
  • 滚动页面到指定位置动画展示-Vue自定义命令-IntersectionObserver-animate.css

    最近在做公司官网 web H5 页面滚动显示出来给个小动画 之前了解的浏览器标准解决方案 不向下兼容 是 IntersectionObserver 是一个全局的侦听器 但是每个页面去做一个实例去侦听当前对象也觉得太冗余了吧 并且在vue里面
  • 逻辑分析仪的使用

    目录 逻辑分析仪与示波器的区别 逻辑分析仪 DSView 软件安装与简介 波形采集 波形分析 分析I2S协议 逻辑分析仪与示波器的区别 参考 https www bilibili com video BV1mz4y127jn spm id
  • 详解环境变量

    目录 前言 一 什么是环境变量 二 查看环境变量的方法 三 查看环境变量的内容 四 普通变量VS环境变量 五 导出环境变量 六 常见的环境变量 七 set命令 查看普通变量或环境变量 八 C C 语言中main函数中的参数 1 main函数
  • C#操作Excel总结

    0 导入命名空间 1 2 3 4 using Microsoft Office Core using Microsoft Office Interop Excel
  • 1-8、Lua编译-运行-错误信息

    1 8 Lua编译 运行 错误信息 文章目录 1 8 Lua编译 运行 错误信息 1 require函数 2 C Packages 3 错误 4 异常和错误处理 5 错误信息和回跟踪 Tracebacks 虽然我们把Lua当作解释型语言 但
  • JNDI 和 JDBC 的区别-个人理解

    公众号 BiggerBoy 分享了更多知识干货 欢迎关注 多多支持 网上关于 JNDI 和 JDBC 的定义有很多 但是都很官方不容易理解 下面是我最近查阅资料得出的心得体会 希望对你在理解上有一点点的帮助 说的不对的请指正哦 JDBC 看
  • Sharding-jdbc踩坑记录(一)

    sharding jdbc学习链接 sharding jdbc版本 2 0 3 springboot版本 2 1 5 连接池 druid 1 1 14