19 lines
763 B
Java
19 lines
763 B
Java
package com.sqx.sharding;
|
|
|
|
import org.apache.shardingsphere.api.sharding.standard.PreciseShardingAlgorithm;
|
|
import org.apache.shardingsphere.api.sharding.standard.PreciseShardingValue;
|
|
import java.util.Collection;
|
|
|
|
public class StandardShardingStrategyConf implements PreciseShardingAlgorithm<Long> {
|
|
@Override
|
|
public String doSharding(Collection<String> availableTargetNames, PreciseShardingValue<Long> shardingValue) {
|
|
// 根据ID对5取模来确定表名
|
|
long tableIndex = shardingValue.getValue() % 5;
|
|
for (String tableName : availableTargetNames) {
|
|
if (tableName.endsWith(String.valueOf(tableIndex))) {
|
|
return tableName;
|
|
}
|
|
}
|
|
throw new IllegalArgumentException();
|
|
}
|
|
} |