Sharding-JDBC对不需要分库分表的普通表如何配置数据源

在我们使用Sharding-JDBC实现分库分表时,更多的表是不需要分库分表的,此时我们需要配置默认数据库,让不需要分库分表的表,使用默认数据源。

springboot版本:2.7.1

sharding-jdbc版本:4.1.0

Pom主要配置如下:

<!-- ShardingSphere -->
<dependency>
	<groupId>org.apache.shardingsphere</groupId>
	<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
	<version>4.1.0</version>
</dependency>
<dependency>
	<groupId>org.apache.shardingsphere</groupId>
	<artifactId>sharding-core-common</artifactId>
	<version>4.1.0</version>
</dependency>

 yml配置:

server:
  port: 8089
spring:
  application:
    name: subdatabase
  shardingsphere:
    datasource:
      #不需要分表的默认数据源
      subdatabase:
        driver-class-name: com.mysql.cj.jdbc.Driver
        password: root
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://localhost:3306/subdatabase?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
        username: root
      #分库分表的第一个数据源
      subdatabase0:
        driver-class-name: com.mysql.cj.jdbc.Driver
        password: root
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://localhost:3306/subdatabase0?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
        username: root
      #分库分表的第二个数据源
      subdatabase1:
        driver-class-name: com.mysql.cj.jdbc.Driver
        password: root
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://localhost:3306/subdatabase1?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
        username: root
      names: subdatabase,subdatabase0,subdatabase1
    sharding:
      # 指定不需要分表的普通表使用的数据源
      default-data-source-name: subdatabase
      default-database-strategy:
        inline:
          algorithm-expression: subdatabase$->{userId % 2}
          sharding-column: userId
      tables:
        orders:
          actual-data-nodes: subdatabase$->{0..1}.orders$->{0..1}
          key-generator:
            column: userId
            type: SNOWFLAKE
          table-strategy:
            inline:
              algorithm-expression: orders$->{userId % 2}
              sharding-column: userId
    props:
      sql:
        show: true
mybatis:
  mapper-locations: classpath:mapping/*.xml
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值