sunlife95 commented on issue #28069:
URL: 
https://github.com/apache/shardingsphere/issues/28069#issuecomment-1680090893

   > Are you using ShardingSphere-JDBC?
   
   yes, and i config with java 
   
   `
       /**
        * 初始化分表规则
        */
       private ShardingRuleConfiguration getShardingRuleConfiguration() {
           ShardingRuleConfiguration ruleConfiguration = new 
ShardingRuleConfiguration();
   
           // 分库策略:不分库只分表
           ruleConfiguration.setDefaultDatabaseShardingStrategy(new 
NoneShardingStrategyConfiguration());
           // 分表策略:默认不分表
           ruleConfiguration.setDefaultTableShardingStrategy(new 
NoneShardingStrategyConfiguration());
   
           // 默认自增列值生成器
           ruleConfiguration.getKeyGenerators().putIfAbsent("myKeyGenerator", 
new AlgorithmConfiguration("myKeyGenerator", new Properties()));
           ruleConfiguration.setDefaultKeyGenerateStrategy(new 
KeyGenerateStrategyConfiguration("shard_column", "myKeyGenerator");
   
           // 分表规则
           
ruleConfiguration.getShardingAlgorithms().putIfAbsent(ShardingAlgorithmConsts.HASH_MODULO_ALGORITHM,
 new AlgorithmConfiguration(ShardingAlgorithmConsts.HASH_MODULO_ALGORITHM, new 
Properties()));
   
           // 分片规则
           ShardingTableRuleConfiguration result = new 
ShardingTableRuleConfiguration("shard_table", "ds_0.shard_table_${0..7}");
           result.setKeyGenerateStrategy(new 
KeyGenerateStrategyConfiguration("shard_column", "myKeyGenerator"));
           result.setTableShardingStrategy(new 
StandardShardingStrategyConfiguration("shard_column", "myShardAlgorithm"));
           ruleConfiguration.getTables().add(result);
   
           return ruleConfiguration;
       }
   
       /**
        * 初始化单表规则
        */
       private SingleRuleConfiguration getSingleRuleConfiguration() {
   
           List<String> singleTableList = Lists.newArrayList();
   
           singleTableList.add("*.*");
   
           return new SingleRuleConfiguration(singleTableList, "ds_0");
       }
        /**
        * 主从分离配置
        * @return
        * @throws SQLException
        */
       private ReadwriteSplittingRuleConfiguration 
getReadWriteSplittingRuleConfiguration() {
           ReadwriteSplittingDataSourceRuleConfiguration 
dataSourceConfiguration = new 
ReadwriteSplittingDataSourceRuleConfiguration("ds_0", MASTER_NAME, SLAVE_NAMES, 
"roundRobin");
   
           //负载均衡算法
           Map<String, AlgorithmConfiguration> loadBalanceMaps = new 
HashMap<>(1);
           loadBalanceMaps.put("roundRobin", new 
AlgorithmConfiguration("ROUND_ROBIN", new Properties()));
   
           return new 
ReadwriteSplittingRuleConfiguration(Lists.newArrayList(dataSourceConfiguration),
 loadBalanceMaps);
       }
   
   
       /**
        * 初始化sharding 数据源
        * @return
        * @throws SQLException
        */
       @Bean
       public DataSource shardingDataSource() throws SQLException {
   
           // 分表规则配置
           ShardingRuleConfiguration shardingRuleConfiguration = 
getShardingRuleConfiguration();
   
           // 读写分离配置
           ReadwriteSplittingRuleConfiguration 
readwriteSplittingRuleConfiguration = getReadWriteSplittingRuleConfiguration();
   
           // 单表配置
           SingleRuleConfiguration singleRuleConfiguration = 
getSingleRuleConfiguration();
   
           // sharding sql显示配置
           Properties props = new Properties();
           props.put(ConfigurationPropertyKey.SQL_SHOW.getKey(), showSql);
   
           return ShardingSphereDataSourceFactory.createDataSource("ds_0", new 
ModeConfiguration("Standalone", null), createDataSourceMap(), 
Lists.newArrayList(shardingRuleConfiguration, 
readwriteSplittingRuleConfiguration, singleRuleConfiguration), props);
       }
   
   `


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to