sharding (二)不分库 只分表 (根据 id 主键)进行分表,standard: 标准分片策略,自定义 自己的 id 生成主键

 <!--分表策略,sharding-column 这里根据 id (这列属性不能是String,只能是整型)分表,AdminSingleKeyTableShardingAlgorithm 分表算法-->
    <sharding:standard-strategy id="tableShardingStrategy" sharding-column="id"
                                precise-algorithm-class="com.study.algorithm.AdminSingleKeyTableShardingAlgorithm"/>
 
    <sharding:data-source id="shardingDataSource">
        <!--因为我只有一张表。所以就只需要配置一个dataSource-->
        <sharding:sharding-rule data-source-names="dataSource" default-data-source-name="dataSource">
            <sharding:table-rules>
                <!--logic-tables逻辑表名: 逻辑表名 其实就是 sql 中 写的表名称-->
                <!--actual-data-nodes真实表名-->
                <sharding:table-rule logic-table="t_manager"
                                     actual-data-nodes="dataSource.t_manager_0,dataSource.t_manager_1"
                                     table-strategy-ref="tableShardingStrategy" 

generate-key-column="id"   // 定义生成key 的主键是那一列

column-key-generator-class="com.study.algorithm.IdKeyGenerator"  // 定义 key 的生成策略

/>
            </sharding:table-rules>
            <sharding:binding-table-rules>
                <!--logic-tables逻辑表名-->
                <sharding:binding-table-rule logic-tables="t_manager"/>
            </sharding:binding-table-rules>
        </sharding:sharding-rule>
    </sharding:data-source>

 

 

IdKeyGenerator  类代码如下,注意 是 需要实现

KeyGenerator (import io.shardingjdbc.core.keygen.KeyGenerator;) 接口

具体代码如下:

package com.study.algorithm;

import io.shardingjdbc.core.keygen.KeyGenerator;

import java.util.Random;


public class CommonIdKeyGenerator implements KeyGenerator {

    @Override
    public Number generateKey() {
        Random random = new Random();
        int rom = random.nextInt(100);
        return rom;
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值