From 0f3d562bf42d15c7a8670beab5951523999788b5 Mon Sep 17 00:00:00 2001 From: terrymanu Date: Fri, 8 Sep 2017 18:15:11 +0800 Subject: [PATCH] refactor api 2nd version --- README.md | 4 +-- README_ZH.md | 4 +-- .../common/api/ShardingRuleBuilderTest.java | 8 ++--- .../rdb/sharding/api/rule/ShardingRule.java | 30 +++++++++---------- .../routing/router/DatabaseHintSQLRouter.java | 2 +- .../sharding/api/rule/ShardingRuleTest.java | 20 ++++++------- .../content/00-overview/intro.md | 4 +-- .../content/01-start/quick-start.md | 4 +-- .../content/02-guide/key-generator.md | 2 +- .../content/02-guide/sharding.md | 20 ++++++------- 10 files changed, 49 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 78dc94ccfa..042643da2b 100644 --- a/README.md +++ b/README.md @@ -74,8 +74,8 @@ Sharding-JDBC is a JDBC extension, provides distributed features such as shardin ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(tableRuleList) - .databaseShardingStrategy(new DatabaseShardingStrategy("sharding_column", new XXXShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) + .defaultDatabaseShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm())) + .defaultTableShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) .build(); ``` diff --git a/README_ZH.md b/README_ZH.md index 731ba809cb..87c6facbdc 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -72,8 +72,8 @@ Sharding-JDBC的分库分表通过规则配置描述,请简单浏览配置全 ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(tableRuleList) - .databaseShardingStrategy(new DatabaseShardingStrategy("sharding_column", new XXXShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) + .defaultDatabaseShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm())) + .defaultTableShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) .build(); ``` diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java index b4bdbe7eb0..3abc0f84b0 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilderTest.java @@ -135,10 +135,10 @@ public final class ShardingRuleBuilderTest { assertTrue(bindingTableRule.hasLogicTable("t_order")); assertTrue(bindingTableRule.hasLogicTable("t_order_item")); assertFalse(bindingTableRule.hasLogicTable("t_log")); - assertThat(actual.getDatabaseShardingStrategy().getShardingColumns().size(), is(1)); - assertThat(actual.getDatabaseShardingStrategy().getShardingColumns().iterator().next(), is("usr_id")); - assertThat(actual.getTableShardingStrategy().getShardingColumns().size(), is(1)); - assertThat(actual.getTableShardingStrategy().getShardingColumns().iterator().next(), is("oid")); + assertThat(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().size(), is(1)); + assertThat(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().iterator().next(), is("usr_id")); + assertThat(actual.getDefaultTableShardingStrategy().getShardingColumns().size(), is(1)); + assertThat(actual.getDefaultTableShardingStrategy().getShardingColumns().iterator().next(), is("oid")); } private Map createDataSourceMap() { diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRule.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRule.java index 80356a765d..40ef97ab54 100644 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRule.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRule.java @@ -51,12 +51,12 @@ public final class ShardingRule { private final Collection bindingTableRules; - private final ShardingStrategy databaseShardingStrategy; + private final ShardingStrategy defaultDatabaseShardingStrategy; - private final ShardingStrategy tableShardingStrategy; + private final ShardingStrategy defaultTableShardingStrategy; @Getter(AccessLevel.NONE) - private final KeyGenerator keyGenerator; + private final KeyGenerator defaultKeyGenerator; /** * Constructs a full properties sharding rule. @@ -67,21 +67,21 @@ public final class ShardingRule { * @param dataSourceRule data source rule * @param tableRules table rules * @param bindingTableRules binding table rules - * @param databaseShardingStrategy default database sharding strategy - * @param tableShardingStrategy default table sharding strategy - * @param keyGenerator primary key generator + * @param defaultDatabaseShardingStrategy default database sharding strategy + * @param defaultTableShardingStrategy default table sharding strategy + * @param defaultKeyGenerator default primary key generator */ @Deprecated public ShardingRule( - final DataSourceRule dataSourceRule, final Collection tableRules, final Collection bindingTableRules, - final ShardingStrategy databaseShardingStrategy, final ShardingStrategy tableShardingStrategy, final KeyGenerator keyGenerator) { + final DataSourceRule dataSourceRule, final Collection tableRules, final Collection bindingTableRules, + final ShardingStrategy defaultDatabaseShardingStrategy, final ShardingStrategy defaultTableShardingStrategy, final KeyGenerator defaultKeyGenerator) { Preconditions.checkNotNull(dataSourceRule); this.dataSourceRule = dataSourceRule; this.tableRules = null == tableRules ? Collections.emptyList() : tableRules; this.bindingTableRules = null == bindingTableRules ? Collections.emptyList() : bindingTableRules; - this.databaseShardingStrategy = null == databaseShardingStrategy ? new NoneShardingStrategy() : databaseShardingStrategy; - this.tableShardingStrategy = null == tableShardingStrategy ? new NoneShardingStrategy() : tableShardingStrategy; - this.keyGenerator = null == keyGenerator ? KeyGeneratorFactory.createKeyGenerator(DefaultKeyGenerator.class) : keyGenerator; + this.defaultDatabaseShardingStrategy = null == defaultDatabaseShardingStrategy ? new NoneShardingStrategy() : defaultDatabaseShardingStrategy; + this.defaultTableShardingStrategy = null == defaultTableShardingStrategy ? new NoneShardingStrategy() : defaultTableShardingStrategy; + this.defaultKeyGenerator = null == defaultKeyGenerator ? KeyGeneratorFactory.createKeyGenerator(DefaultKeyGenerator.class) : defaultKeyGenerator; } /** @@ -143,7 +143,7 @@ public final class ShardingRule { * @return database sharding strategy */ public ShardingStrategy getDatabaseShardingStrategy(final TableRule tableRule) { - return null == tableRule.getDatabaseShardingStrategy() ? databaseShardingStrategy : tableRule.getDatabaseShardingStrategy(); + return null == tableRule.getDatabaseShardingStrategy() ? defaultDatabaseShardingStrategy : tableRule.getDatabaseShardingStrategy(); } /** @@ -157,7 +157,7 @@ public final class ShardingRule { * @return table sharding strategy */ public ShardingStrategy getTableShardingStrategy(final TableRule tableRule) { - return null == tableRule.getTableShardingStrategy() ? tableShardingStrategy : tableRule.getTableShardingStrategy(); + return null == tableRule.getTableShardingStrategy() ? defaultTableShardingStrategy : tableRule.getTableShardingStrategy(); } /** @@ -222,7 +222,7 @@ public final class ShardingRule { * @return is sharding column or not */ public boolean isShardingColumn(final Column column) { - if (databaseShardingStrategy.getShardingColumns().contains(column.getName()) || tableShardingStrategy.getShardingColumns().contains(column.getName())) { + if (defaultDatabaseShardingStrategy.getShardingColumns().contains(column.getName()) || defaultTableShardingStrategy.getShardingColumns().contains(column.getName())) { return true; } for (TableRule each : tableRules) { @@ -268,7 +268,7 @@ public final class ShardingRule { if (null != tableRule.get().getKeyGenerator()) { return tableRule.get().getKeyGenerator().generateKey(); } - return keyGenerator.generateKey(); + return defaultKeyGenerator.generateKey(); } /** diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/DatabaseHintSQLRouter.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/DatabaseHintSQLRouter.java index e0e8c099fe..f43d493299 100644 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/DatabaseHintSQLRouter.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/DatabaseHintSQLRouter.java @@ -56,7 +56,7 @@ public final class DatabaseHintSQLRouter implements SQLRouter { // TODO insert SQL need parse gen key public SQLRouteResult route(final String logicSQL, final List parameters, final SQLStatement sqlStatement) { SQLRouteResult result = new SQLRouteResult(sqlStatement); - RoutingResult routingResult = new DatabaseHintRoutingEngine(shardingRule.getDataSourceRule(), (HintShardingStrategy) shardingRule.getDatabaseShardingStrategy()).route(); + RoutingResult routingResult = new DatabaseHintRoutingEngine(shardingRule.getDataSourceRule(), (HintShardingStrategy) shardingRule.getDefaultDatabaseShardingStrategy()).route(); for (TableUnit each : routingResult.getTableUnits().getTableUnits()) { result.getExecutionUnits().add(new SQLExecutionUnit(each.getDataSourceName(), logicSQL)); } diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRuleTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRuleTest.java index 219cff4fe6..8fcfa69cc6 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRuleTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/api/rule/ShardingRuleTest.java @@ -42,31 +42,31 @@ public final class ShardingRuleTest { @Test public void assertShardingRuleWithoutStrategy() { ShardingRule actual = ShardingRule.builder().dataSourceRule(createDataSourceRule()).tableRules(Collections.singletonList(createTableRule())).build(); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); - assertTrue(actual.getTableShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultTableShardingStrategy().getShardingColumns().isEmpty()); } @Test public void assertShardingRuleWithBindingTableRuleWithoutStrategy() { ShardingRule actual = createShardingRule(); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); - assertTrue(actual.getTableShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultTableShardingStrategy().getShardingColumns().isEmpty()); } @Test public void assertShardingRuleWithDatabaseStrategy() { ShardingRule actual = ShardingRule.builder().dataSourceRule(createDataSourceRule()) .tableRules(Collections.singletonList(createTableRule())).databaseShardingStrategy(new NoneShardingStrategy()).build(); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); - assertTrue(actual.getTableShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultTableShardingStrategy().getShardingColumns().isEmpty()); } @Test public void assertShardingRuleWithTableStrategy() { ShardingRule actual = ShardingRule.builder().dataSourceRule(createDataSourceRule()) .tableRules(Collections.singletonList(createTableRule())).tableShardingStrategy(new NoneShardingStrategy()).build(); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); } @Test @@ -75,8 +75,8 @@ public final class ShardingRuleTest { .tableRules(Collections.singletonList(createTableRule())) .databaseShardingStrategy(new NoneShardingStrategy()) .tableShardingStrategy(new NoneShardingStrategy()).build(); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); - assertTrue(actual.getDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); + assertTrue(actual.getDefaultDatabaseShardingStrategy().getShardingColumns().isEmpty()); } @Test diff --git a/sharding-jdbc-doc/content/00-overview/intro.md b/sharding-jdbc-doc/content/00-overview/intro.md index ec050f1b5d..b4972136e3 100644 --- a/sharding-jdbc-doc/content/00-overview/intro.md +++ b/sharding-jdbc-doc/content/00-overview/intro.md @@ -71,8 +71,8 @@ Sharding-JDBC的分库分表通过规则配置描述,请简单浏览配置全 ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(tableRuleList) - .databaseShardingStrategy(new DatabaseShardingStrategy("sharding_column", new XXXShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) + .defaultDatabaseShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm())) + .defaultTableShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) .build(); ``` diff --git a/sharding-jdbc-doc/content/01-start/quick-start.md b/sharding-jdbc-doc/content/01-start/quick-start.md index 35f537e22e..9917134962 100644 --- a/sharding-jdbc-doc/content/01-start/quick-start.md +++ b/sharding-jdbc-doc/content/01-start/quick-start.md @@ -29,8 +29,8 @@ Sharding-JDBC的分库分表通过规则配置描述,请简单浏览配置全 ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(tableRuleList) - .databaseShardingStrategy(new DatabaseShardingStrategy("sharding_column", new XXXShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) + .defaultDatabaseShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm())) + .defaultTableShardingStrategy(new StandardShardingStrategy("sharding_column", new XXXShardingAlgorithm()))) .build(); ``` diff --git a/sharding-jdbc-doc/content/02-guide/key-generator.md b/sharding-jdbc-doc/content/02-guide/key-generator.md index 029d4dcf5a..42b4f75d3b 100644 --- a/sharding-jdbc-doc/content/02-guide/key-generator.md +++ b/sharding-jdbc-doc/content/02-guide/key-generator.md @@ -36,7 +36,7 @@ TableRule.builder("t_order").generateKeyColumns("order_id"); 配置全局生成器(com.xx.xx.KeyGenerator): ```java -ShardingRule.builder().keyGenerator(com.xx.xx.KeyGenerator.class); +ShardingRule.builder().defaultKeyGenerator(com.xx.xx.KeyGenerator.class); ``` diff --git a/sharding-jdbc-doc/content/02-guide/sharding.md b/sharding-jdbc-doc/content/02-guide/sharding.md index 7c4a1d1774..f8bd1a3794 100644 --- a/sharding-jdbc-doc/content/02-guide/sharding.md +++ b/sharding-jdbc-doc/content/02-guide/sharding.md @@ -86,8 +86,8 @@ select * from db0.t_order_0 where user_id = ? and order_id = ?; ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(Arrays.asList(orderTableRule, orderItemTableRule)) - .databaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) + .defaultDatabaseShardingStrategy(new StandardShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) + .defaultTableShardingStrategy(new StandardShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) .build(); ``` ## 数据源配置 @@ -127,8 +127,8 @@ Sharding-JDBC认为对于分片策略存有两种维度 TableRule orderTableRule = TableRule.builder("t_order") .actualTables(Arrays.asList("t_order_0", "t_order_1") .dataSourceRule(dataSourceRule) - .databaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm()))) + .defaultDatabaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) + .defaultTableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm()))) .build(); ``` @@ -147,8 +147,8 @@ Sharding-JDBC认为对于分片策略存有两种维度 ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(Arrays.asList(orderTableRule, orderItemTableRule)) - .databaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) + .defaultDatabaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) + .defaultTableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) .build(); ``` @@ -161,14 +161,14 @@ Sharding-JDBC认为对于分片策略存有两种维度 TableRule orderItemTableRule = TableRule.builder("t_order_item") .actualTables(Arrays.asList("t_order_item_0", "t_order_item_1")) .dataSourceRule(dataSourceRule) - .databaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) + .defaultDatabaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) + .defaultTableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) .build(); ShardingRule shardingRule = ShardingRule.builder() .dataSourceRule(dataSourceRule) .tableRules(Arrays.asList(orderTableRule, orderItemTableRule)) - .databaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) - .tableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) + .defaultDatabaseShardingStrategy(new DatabaseShardingStrategy("user_id", new ModuloDatabaseShardingAlgorithm())) + .defaultTableShardingStrategy(new TableShardingStrategy("order_id", new ModuloTableShardingAlgorithm())) .build(); ``` -- GitLab