Loading sharding-core/src/main/java/io/shardingsphere/core/metadata/ShardingMetaData.java +8 −10 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; /** * Abstract Sharding metadata. * Sharding metadata. * * @author panjuan * @author zhaojun Loading @@ -64,18 +64,16 @@ public abstract class ShardingMetaData { */ public void init(final ShardingRule shardingRule) { try { Collection<TableRule> tableRules = getTableRules(shardingRule); for (TableRule each : tableRules) { for (TableRule each : getTableRules(shardingRule)) { refresh(each, shardingRule); } } catch (SQLException ex) { } catch (final SQLException ex) { throw new ShardingException(ex); } } private Collection<TableRule> getTableRules(final ShardingRule shardingRule) throws SQLException { Collection<TableRule> result = new LinkedList<>(); result.addAll(shardingRule.getTableRules()); Collection<TableRule> result = new LinkedList<>(shardingRule.getTableRules()); String defaultDataSourceName = shardingRule.getShardingDataSourceNames().getDefaultDataSourceName(); if (!Strings.isNullOrEmpty(defaultDataSourceName)) { Collection<String> defaultTableNames = getTableNamesFromDefaultDataSource(shardingRule.getMasterDataSourceName(defaultDataSourceName)); Loading Loading @@ -108,12 +106,12 @@ public abstract class ShardingMetaData { /** * Refresh each tableMetaData by TableRule. * * @param each table rule * @param tableRule table rule * @param shardingRule sharding rule * @param connectionMap connection map passing from sharding connection */ public void refresh(final TableRule each, final ShardingRule shardingRule, final Map<String, Connection> connectionMap) { tableMetaDataMap.put(each.getLogicTable(), getFinalTableMetaData(each.getLogicTable(), each.getActualDataNodes(), shardingRule.getShardingDataSourceNames(), connectionMap)); public void refresh(final TableRule tableRule, final ShardingRule shardingRule, final Map<String, Connection> connectionMap) { tableMetaDataMap.put(tableRule.getLogicTable(), getFinalTableMetaData(tableRule.getLogicTable(), tableRule.getActualDataNodes(), shardingRule.getShardingDataSourceNames(), connectionMap)); } private TableMetaData getFinalTableMetaData( Loading Loading @@ -165,7 +163,7 @@ public abstract class ShardingMetaData { } /** * Judge whether this databaseType is supported. * Judge whether this database type is supported. * * @return supported or not */ Loading sharding-jdbc/src/main/java/io/shardingsphere/core/jdbc/metadata/JDBCShardingMetaData.java +6 −9 Original line number Diff line number Diff line Loading @@ -54,19 +54,16 @@ public final class JDBCShardingMetaData extends ShardingMetaData { } @Override public TableMetaData getTableMetaData(final DataNode dataNode, final ShardingDataSourceNames shardingDataSourceNames, final Map<String, Connection> connectionMap) throws SQLException { public TableMetaData getTableMetaData(final DataNode dataNode, final ShardingDataSourceNames shardingDataSourceNames, final Map<String, Connection> connectionMap) throws SQLException { String dataSourceName = shardingDataSourceNames.getRawMasterDataSourceName(dataNode.getDataSourceName()); if (connectionMap.containsKey(dataSourceName)) { return ShardingMetaDataHandlerFactory.newInstance(dataNode.getTableName(), databaseType).getTableMetaData(connectionMap.get(dataSourceName)); } else { return ShardingMetaDataHandlerFactory.newInstance(dataSourceMap.get(dataSourceName), dataNode.getTableName(), databaseType).getTableMetaData(); } return ShardingMetaDataHandlerFactory.newInstance(dataSourceMap.get(dataSourceName), dataNode.getTableName(), databaseType).getTableMetaData(); } @Override public Collection<String> getTableNamesFromDefaultDataSource(final String defaultDataSourceName) throws SQLException { return ShardingMetaDataHandlerFactory.newInstance(dataSourceMap.get(defaultDataSourceName), "", databaseType).getTableNamesFromDefaultDataSource(); } } Loading
sharding-core/src/main/java/io/shardingsphere/core/metadata/ShardingMetaData.java +8 −10 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; /** * Abstract Sharding metadata. * Sharding metadata. * * @author panjuan * @author zhaojun Loading @@ -64,18 +64,16 @@ public abstract class ShardingMetaData { */ public void init(final ShardingRule shardingRule) { try { Collection<TableRule> tableRules = getTableRules(shardingRule); for (TableRule each : tableRules) { for (TableRule each : getTableRules(shardingRule)) { refresh(each, shardingRule); } } catch (SQLException ex) { } catch (final SQLException ex) { throw new ShardingException(ex); } } private Collection<TableRule> getTableRules(final ShardingRule shardingRule) throws SQLException { Collection<TableRule> result = new LinkedList<>(); result.addAll(shardingRule.getTableRules()); Collection<TableRule> result = new LinkedList<>(shardingRule.getTableRules()); String defaultDataSourceName = shardingRule.getShardingDataSourceNames().getDefaultDataSourceName(); if (!Strings.isNullOrEmpty(defaultDataSourceName)) { Collection<String> defaultTableNames = getTableNamesFromDefaultDataSource(shardingRule.getMasterDataSourceName(defaultDataSourceName)); Loading Loading @@ -108,12 +106,12 @@ public abstract class ShardingMetaData { /** * Refresh each tableMetaData by TableRule. * * @param each table rule * @param tableRule table rule * @param shardingRule sharding rule * @param connectionMap connection map passing from sharding connection */ public void refresh(final TableRule each, final ShardingRule shardingRule, final Map<String, Connection> connectionMap) { tableMetaDataMap.put(each.getLogicTable(), getFinalTableMetaData(each.getLogicTable(), each.getActualDataNodes(), shardingRule.getShardingDataSourceNames(), connectionMap)); public void refresh(final TableRule tableRule, final ShardingRule shardingRule, final Map<String, Connection> connectionMap) { tableMetaDataMap.put(tableRule.getLogicTable(), getFinalTableMetaData(tableRule.getLogicTable(), tableRule.getActualDataNodes(), shardingRule.getShardingDataSourceNames(), connectionMap)); } private TableMetaData getFinalTableMetaData( Loading Loading @@ -165,7 +163,7 @@ public abstract class ShardingMetaData { } /** * Judge whether this databaseType is supported. * Judge whether this database type is supported. * * @return supported or not */ Loading
sharding-jdbc/src/main/java/io/shardingsphere/core/jdbc/metadata/JDBCShardingMetaData.java +6 −9 Original line number Diff line number Diff line Loading @@ -54,19 +54,16 @@ public final class JDBCShardingMetaData extends ShardingMetaData { } @Override public TableMetaData getTableMetaData(final DataNode dataNode, final ShardingDataSourceNames shardingDataSourceNames, final Map<String, Connection> connectionMap) throws SQLException { public TableMetaData getTableMetaData(final DataNode dataNode, final ShardingDataSourceNames shardingDataSourceNames, final Map<String, Connection> connectionMap) throws SQLException { String dataSourceName = shardingDataSourceNames.getRawMasterDataSourceName(dataNode.getDataSourceName()); if (connectionMap.containsKey(dataSourceName)) { return ShardingMetaDataHandlerFactory.newInstance(dataNode.getTableName(), databaseType).getTableMetaData(connectionMap.get(dataSourceName)); } else { return ShardingMetaDataHandlerFactory.newInstance(dataSourceMap.get(dataSourceName), dataNode.getTableName(), databaseType).getTableMetaData(); } return ShardingMetaDataHandlerFactory.newInstance(dataSourceMap.get(dataSourceName), dataNode.getTableName(), databaseType).getTableMetaData(); } @Override public Collection<String> getTableNamesFromDefaultDataSource(final String defaultDataSourceName) throws SQLException { return ShardingMetaDataHandlerFactory.newInstance(dataSourceMap.get(defaultDataSourceName), "", databaseType).getTableNamesFromDefaultDataSource(); } }