Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/memory/ConnectionStrictlyExecuteEngine.java +7 −12 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { sqlUnitStatements.put(entry.getKey(), createSQLUnitStatement(entry.getKey(), entry.getValue(), isReturnGeneratedKeys)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitStatements, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new TransactionGroupExecuteCallback(isReturnGeneratedKeys)); sqlUnitStatements, new FirstSQLGroupExecuteCallback(isReturnGeneratedKeys), new SQLGroupExecuteCallback(isReturnGeneratedKeys)); return getExecuteQueryResponse(executeResponseUnits); } Loading Loading @@ -107,7 +107,7 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class FirstTransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class FirstSQLGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading @@ -115,25 +115,20 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { public Collection<ExecuteResponseUnit> execute(final String dataSourceName, final Collection<StatementExecuteUnit> statementExecuteUnits) throws SQLException { Collection<ExecuteResponseUnit> result = new LinkedList<>(); boolean hasMetaData = false; Connection connection = getBackendConnection().getConnection(dataSourceName); for (StatementExecuteUnit each : statementExecuteUnits) { String actualSQL = each.getSqlExecutionUnit().getSqlUnit().getSql(); Statement statement = getJdbcExecutorWrapper().createStatement(connection, actualSQL, isReturnGeneratedKeys); ExecuteResponseUnit response; if (hasMetaData) { response = executeWithoutMetadata(statement, actualSQL, isReturnGeneratedKeys); result.add(executeWithoutMetadata(each.getStatement(), each.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys)); } else { response = executeWithMetadata(statement, actualSQL, isReturnGeneratedKeys); result.add(executeWithMetadata(each.getStatement(), each.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys)); hasMetaData = true; } result.add(response); } return result; } } @RequiredArgsConstructor class TransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class SQLGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/stream/MemoryStrictlyExecuteEngine.java +5 −8 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { statementExecuteUnits.add(new ProxyStatementExecuteUnit(each, statement)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( statementExecuteUnits, new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new TransactionExecuteCallback(isReturnGeneratedKeys)); statementExecuteUnits, new FirstSQLExecuteCallback(isReturnGeneratedKeys), new SQLExecuteCallback(isReturnGeneratedKeys)); ExecuteResponseUnit firstExecuteResponseUnit = executeResponseUnits.iterator().next(); return firstExecuteResponseUnit instanceof ExecuteQueryResponseUnit ? getExecuteQueryResponse((ExecuteQueryResponseUnit) firstExecuteResponseUnit, executeResponseUnits) : getExecuteUpdateResponse(executeResponseUnits); Loading Loading @@ -92,27 +92,24 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class FirstTransactionExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class FirstSQLExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public ExecuteResponseUnit execute(final StatementExecuteUnit statementExecuteUnit) throws SQLException { Statement statement = getJdbcExecutorWrapper().createStatement(getBackendConnection().getConnection(statementExecuteUnit.getSqlExecutionUnit().getDataSource()), statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); return executeWithMetadata(statement, statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); return executeWithMetadata(statementExecuteUnit.getStatement(), statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); } } @RequiredArgsConstructor class TransactionExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class SQLExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public ExecuteResponseUnit execute(final StatementExecuteUnit statementExecuteUnit) throws SQLException { String actualSQL = statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(); return executeWithoutMetadata(statementExecuteUnit.getStatement(), actualSQL, isReturnGeneratedKeys); return executeWithoutMetadata(statementExecuteUnit.getStatement(), statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); } } } Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/memory/ConnectionStrictlyExecuteEngine.java +7 −12 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { sqlUnitStatements.put(entry.getKey(), createSQLUnitStatement(entry.getKey(), entry.getValue(), isReturnGeneratedKeys)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitStatements, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new TransactionGroupExecuteCallback(isReturnGeneratedKeys)); sqlUnitStatements, new FirstSQLGroupExecuteCallback(isReturnGeneratedKeys), new SQLGroupExecuteCallback(isReturnGeneratedKeys)); return getExecuteQueryResponse(executeResponseUnits); } Loading Loading @@ -107,7 +107,7 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class FirstTransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class FirstSQLGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading @@ -115,25 +115,20 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { public Collection<ExecuteResponseUnit> execute(final String dataSourceName, final Collection<StatementExecuteUnit> statementExecuteUnits) throws SQLException { Collection<ExecuteResponseUnit> result = new LinkedList<>(); boolean hasMetaData = false; Connection connection = getBackendConnection().getConnection(dataSourceName); for (StatementExecuteUnit each : statementExecuteUnits) { String actualSQL = each.getSqlExecutionUnit().getSqlUnit().getSql(); Statement statement = getJdbcExecutorWrapper().createStatement(connection, actualSQL, isReturnGeneratedKeys); ExecuteResponseUnit response; if (hasMetaData) { response = executeWithoutMetadata(statement, actualSQL, isReturnGeneratedKeys); result.add(executeWithoutMetadata(each.getStatement(), each.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys)); } else { response = executeWithMetadata(statement, actualSQL, isReturnGeneratedKeys); result.add(executeWithMetadata(each.getStatement(), each.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys)); hasMetaData = true; } result.add(response); } return result; } } @RequiredArgsConstructor class TransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class SQLGroupExecuteCallback implements ShardingGroupExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/stream/MemoryStrictlyExecuteEngine.java +5 −8 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { statementExecuteUnits.add(new ProxyStatementExecuteUnit(each, statement)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( statementExecuteUnits, new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new TransactionExecuteCallback(isReturnGeneratedKeys)); statementExecuteUnits, new FirstSQLExecuteCallback(isReturnGeneratedKeys), new SQLExecuteCallback(isReturnGeneratedKeys)); ExecuteResponseUnit firstExecuteResponseUnit = executeResponseUnits.iterator().next(); return firstExecuteResponseUnit instanceof ExecuteQueryResponseUnit ? getExecuteQueryResponse((ExecuteQueryResponseUnit) firstExecuteResponseUnit, executeResponseUnits) : getExecuteUpdateResponse(executeResponseUnits); Loading Loading @@ -92,27 +92,24 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class FirstTransactionExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class FirstSQLExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public ExecuteResponseUnit execute(final StatementExecuteUnit statementExecuteUnit) throws SQLException { Statement statement = getJdbcExecutorWrapper().createStatement(getBackendConnection().getConnection(statementExecuteUnit.getSqlExecutionUnit().getDataSource()), statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); return executeWithMetadata(statement, statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); return executeWithMetadata(statementExecuteUnit.getStatement(), statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); } } @RequiredArgsConstructor class TransactionExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private class SQLExecuteCallback implements ShardingExecuteCallback<StatementExecuteUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public ExecuteResponseUnit execute(final StatementExecuteUnit statementExecuteUnit) throws SQLException { String actualSQL = statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(); return executeWithoutMetadata(statementExecuteUnit.getStatement(), actualSQL, isReturnGeneratedKeys); return executeWithoutMetadata(statementExecuteUnit.getStatement(), statementExecuteUnit.getSqlExecutionUnit().getSqlUnit().getSql(), isReturnGeneratedKeys); } } }