提交 7dd558f1 编写于 作者: T terrymanu

refactor UnparsingSQLRouter => DatabaseHintSQLRouter

上级 be961d73
......@@ -27,22 +27,22 @@ import com.dangdang.ddframe.rdb.sharding.routing.SQLExecutionUnit;
import com.dangdang.ddframe.rdb.sharding.routing.SQLRouteResult;
import com.dangdang.ddframe.rdb.sharding.routing.type.RoutingResult;
import com.dangdang.ddframe.rdb.sharding.routing.type.TableUnit;
import com.dangdang.ddframe.rdb.sharding.routing.type.direct.DirectRoutingEngine;
import com.dangdang.ddframe.rdb.sharding.routing.type.hint.DatabaseHintRoutingEngine;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* 无需解析的SQL路由器.
* 通过提示且仅路由至数据库的SQL路由器.
*
* @author zhangiang
*/
@Slf4j
public final class UnparsingSQLRouter implements SQLRouter {
public final class DatabaseHintSQLRouter implements SQLRouter {
private final ShardingRule shardingRule;
public UnparsingSQLRouter(final ShardingContext shardingContext) {
public DatabaseHintSQLRouter(final ShardingContext shardingContext) {
shardingRule = shardingContext.getShardingRule();
}
......@@ -56,7 +56,7 @@ public final class UnparsingSQLRouter implements SQLRouter {
public SQLRouteResult route(final String logicSQL, final List<Object> parameters, final SQLStatement sqlStatement) {
Context context = MetricsContext.start("Route SQL");
SQLRouteResult result = new SQLRouteResult(sqlStatement);
RoutingResult routingResult = new DirectRoutingEngine(shardingRule.getDataSourceRule(), shardingRule.getDatabaseShardingStrategy(), sqlStatement.getType()).route();
RoutingResult routingResult = new DatabaseHintRoutingEngine(shardingRule.getDataSourceRule(), shardingRule.getDatabaseShardingStrategy(), sqlStatement.getType()).route();
for (TableUnit each : routingResult.getTableUnits().getTableUnits()) {
result.getExecutionUnits().add(new SQLExecutionUnit(each.getDataSourceName(), logicSQL));
}
......
......@@ -37,6 +37,6 @@ public final class SQLRouterFactory {
* @return SQL路由器
*/
public static SQLRouter createSQLRouter(final ShardingContext shardingContext) {
return HintManagerHolder.isDatabaseShardingOnly() ? new UnparsingSQLRouter(shardingContext) : new ParsingSQLRouter(shardingContext);
return HintManagerHolder.isDatabaseShardingOnly() ? new DatabaseHintSQLRouter(shardingContext) : new ParsingSQLRouter(shardingContext);
}
}
package com.dangdang.ddframe.rdb.sharding.routing.type;
/**
* 路由接口.
* 路由引擎接口.
*
* @author zhangliang
*/
......
......@@ -37,7 +37,7 @@ import java.util.List;
import java.util.TreeSet;
/**
* 混合多库表路由.
* 混合多库表路由引擎.
*
* @author gaohongtao
* @author zhangliang
......
......@@ -15,7 +15,7 @@
* </p>
*/
package com.dangdang.ddframe.rdb.sharding.routing.type.direct;
package com.dangdang.ddframe.rdb.sharding.routing.type.hint;
import com.dangdang.ddframe.rdb.sharding.api.ShardingValue;
import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule;
......@@ -35,13 +35,14 @@ import java.util.Collection;
import java.util.Collections;
/**
* 直接路由.
* 基于数据库提示的路由引擎.
*
* @author gaohongtao
* @author zhangliang
*/
@RequiredArgsConstructor
@Slf4j
public final class DirectRoutingEngine implements RoutingEngine {
public final class DatabaseHintRoutingEngine implements RoutingEngine {
private final DataSourceRule dataSourceRule;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册