1 Star 0 Fork 953

jlcoding/jboot

forked from JbootProjects/jboot 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
UseDatabaseShardingStrategyConfig.java 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
Michael Yang 提交于 2018-03-14 16:29 +08:00 . 添加分库的相关demo
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 UseDatabaseShardingStrategyConfig 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 dbName = "db" + Math.abs(value.hashCode()) % 2;
System.out.println("命中数据到的数据库:" + dbName);
return Sets.newHashSet(dbName);
}
};
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/msgcode/jboot.git
git@gitee.com:msgcode/jboot.git
msgcode
jboot
jboot
master

搜索帮助