ShardingSphere-JDBC

分库分表,可以参考官方的文档:

Java API :: ShardingSphere

1.引入maven依赖

        <dependency>
            <groupId>io.shardingjdbc</groupId>
            <artifactId>sharding-jdbc-core</artifactId>
            <version>${sharding.jdbc.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-core</artifactId>
            <version>${sharding.sphere.version}</version>
        </dependency>

2.配置yml

dataSources:
  # 数据源1
  ds0: !!com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/sp1?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: root
  #数据源2
  ds1: !!com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/sp2?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: root
shardingRule:
  tables:
    # sys_user表的分库分表规则
    sys_user:
      # 可能存在ds0/ds1数据库中的sys_user1或者sys_user2或者sys_user3
      actualDataNodes: ds${0..1}.sys_user${1..3}
      tableStrategy:
        inline:
          # 按ID做为分表依据
          shardingColumn: id
          algorithmExpression: sys_user${id % 3}
      databaseStrategy:
        inline:
          # 同时按ID作为分库依据
          shardingColumn: id
          algorithmExpression: ds${id % 2}
      # 需要使用ID生成器生成的列,分布式数据库中,ID应统一分配
      keyGeneratorColumnName: id
      # 自定义的ID生成器,如不指定,会默认使用sharding提供的雪花算法生成器
      keyGeneratorClass: com.susu.sharding.key.UserIdGenerator
  # 绑定的表列表
  bindingTables:
    - sys_user
  #默认一些配置,如默认使用数据源,默认分库规则,默认分表规则
  defaultDataSourceName: ds0
  defaultDatabaseStrategy:
    inline:
      shardingColumn: id
      algorithmExpression: ds${id % 2}
  defaultTableStrategy:
    none:
  # 显示实际执行SQL
  props:
    sql.show: true

可以下载demo查看

链接:https://pan.baidu.com/s/18Ly1gPoF2qXZkPdYnN9GUw 
提取码:a1ws

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值