1 Star 0 Fork 953

jlcoding/jboot

forked from JbootProjects/jboot 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
UserTableShardingStrategyConfig.java 1.54 KB
一键复制 编辑 原始数据 按行查看 历史
Michael Yang 提交于 2017-12-09 19:07 +08:00 . jboot v1.1.5 release
package sharding;
import com.google.common.collect.Sets;
import io.shardingjdbc.core.api.algorithm.sharding.ListShardingValue;
import io.shardingjdbc.core.api.algorithm.sharding.ShardingValue;
import io.shardingjdbc.core.api.config.strategy.ShardingStrategyConfiguration;
import io.shardingjdbc.core.routing.strategy.ShardingStrategy;
import java.util.Collection;
import java.util.List;
/**
* @author Michael Yang 杨福海 (fuhai999@gmail.com)
* @version V1.0
* @Package sharding
*/
public class UserTableShardingStrategyConfig implements ShardingStrategyConfiguration {
@Override
public ShardingStrategy build() {
return shardingStrategy;
}
private ShardingStrategy shardingStrategy = new ShardingStrategy() {
@Override
public Collection<String> getShardingColumns() {
//根据id进行分表,可以根据多个字段
return Sets.newHashSet("id");
}
@Override
public Collection<String> doSharding(Collection<String> availableTargetNames, Collection<ShardingValue> shardingValues) {
ListShardingValue shardingValue = (ListShardingValue) ((List) shardingValues).get(0);
String value = (String) ((List) shardingValue.getValues()).get(0);
//得到要插入 或者 查询的表
String tableName = "tb_user" + Math.abs(value.hashCode()) % 3;
System.out.println("命中数据到表:" + tableName);
//返回通过计算得到的表
return Sets.newHashSet(tableName);
}
};
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/msgcode/jboot.git
git@gitee.com:msgcode/jboot.git
msgcode
jboot
jboot
master

搜索帮助