diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/PreparedSQLRouter.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/PreparedSQLRouter.java index 1df450df5c114b433b14cb773f670d275b96a0e5..1992d263ee645de864d7414bedcabcca2d674e4a 100644 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/PreparedSQLRouter.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/PreparedSQLRouter.java @@ -58,12 +58,11 @@ public class PreparedSQLRouter { tableRuleOptional = shardingRule.tryFindTableRule(sqlParsedResult.getRouteContext().getTables().iterator().next().getName()); } else { generateId(parameters); - engine.setParameters(parameters); for (ConditionContext each : sqlParsedResult.getConditionContexts()) { each.setNewConditionValue(parameters); } } - return engine.routeSQL(sqlParsedResult); + return engine.routeSQL(sqlParsedResult, parameters); } private void generateId(final List parameters) { diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java index c7a75111e18d5f5b4aaac2de32b71ba680076839..319afd2869e7eefe9bf23a0aab3aecf7ff491a1e 100644 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/router/SQLRouteEngine.java @@ -34,7 +34,6 @@ import com.google.common.base.Function; import com.google.common.collect.Collections2; import com.google.common.collect.Sets; import lombok.RequiredArgsConstructor; -import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.util.Collections; @@ -55,9 +54,6 @@ public final class SQLRouteEngine { private final DatabaseType databaseType; - @Setter - private List parameters; - /** * SQL路由. * @@ -70,7 +66,7 @@ public final class SQLRouteEngine { } SQLRouteResult route(final String logicSql, final List parameters) throws SQLParserException { - return routeSQL(parseSQL(logicSql, parameters)); + return routeSQL(parseSQL(logicSql, parameters), parameters); } /** @@ -84,14 +80,13 @@ public final class SQLRouteEngine { } SQLParsedResult parseSQL(final String logicSql, final List parameters) { - this.parameters = parameters; Context context = MetricsContext.start("Parse SQL"); SQLParsedResult result = SQLParserFactory.create(databaseType, logicSql, parameters, shardingRule).parse(); MetricsContext.stop(context); return result; } - SQLRouteResult routeSQL(final SQLParsedResult parsedResult) { + SQLRouteResult routeSQL(final SQLParsedResult parsedResult, final List parameters) { Context context = MetricsContext.start("Route SQL"); SQLRouteResult result = new SQLRouteResult(parsedResult.getRouteContext().getSqlStatementType(), parsedResult.getMergeContext(), parsedResult.getGeneratedKeyContext()); for (ConditionContext each : parsedResult.getConditionContexts()) { diff --git a/sharding-jdbc-doc/content/post/release_notes.md b/sharding-jdbc-doc/content/post/release_notes.md index a3aa6d7ac29902073352fcaaec33ce0e91c527cb..dc3cd49e86d99c1c667a01989b972ff8c116f7f8 100644 --- a/sharding-jdbc-doc/content/post/release_notes.md +++ b/sharding-jdbc-doc/content/post/release_notes.md @@ -13,7 +13,8 @@ weight = 1 1. [ISSUE #194](https://github.com/dangdangdotcom/sharding-jdbc/issues/194) jdbc接口中资源释放错误 1. [ISSUE #199](https://github.com/dangdangdotcom/sharding-jdbc/issues/199) 分表且复用PreparedStatement对象造成数据路由错误 1. [ISSUE #201](https://github.com/dangdangdotcom/sharding-jdbc/issues/201) 批量操作执行前事件发送缺失 -1. [ISSUE #203](https://github.com/dangdangdotcom/sharding-jdbc/issues/201) 合并batch操作发送的事件 +1. [ISSUE #203](https://github.com/dangdangdotcom/sharding-jdbc/issues/203) 合并batch操作发送的事件 +1. [ISSUE #209](https://github.com/dangdangdotcom/sharding-jdbc/issues/209) limit并行异常 ## 1.4.0