Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java +3 −2 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import lombok.Setter; import javax.transaction.Status; import javax.transaction.SystemException; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; Loading Loading @@ -121,7 +122,7 @@ public abstract class JDBCBackendHandler implements BackendHandler { } List<Future<CommandResponsePackets>> futureList = new ArrayList<>(1024); for (SQLExecutionUnit each : routeResult.getExecutionUnits()) { Statement statement = prepareResource(each, routeResult.getSqlStatement()); Statement statement = prepareResource(ConnectionManager.getConnection(each.getDataSource()), each.getSqlUnit().getSql(), routeResult.getSqlStatement()); futureList.add(userGroup.submit(newSubmitTask(statement, routeResult.getSqlStatement(), each.getSqlUnit().getSql()))); } List<CommandResponsePackets> packets = buildCommandResponsePackets(futureList); Loading @@ -137,7 +138,7 @@ public abstract class JDBCBackendHandler implements BackendHandler { return TransactionType.XA == ruleRegistry.getTransactionType() && SQLType.DDL == sqlType && Status.STATUS_NO_TRANSACTION != AtomikosUserTransaction.getInstance().getStatus(); } protected abstract Statement prepareResource(SQLExecutionUnit sqlExecutionUnit, SQLStatement sqlStatement) throws SQLException; protected abstract Statement prepareResource(Connection connection, String actualSQL, SQLStatement sqlStatement) throws SQLException; protected abstract Callable<CommandResponsePackets> newSubmitTask(Statement statement, SQLStatement sqlStatement, String unitSQL); Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/statement/JDBCStatementBackendHandler.java +2 −6 Original line number Diff line number Diff line Loading @@ -22,9 +22,7 @@ import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.parsing.parser.sql.dml.insert.InsertStatement; import io.shardingsphere.core.routing.PreparedStatementRoutingEngine; import io.shardingsphere.core.routing.SQLExecutionUnit; import io.shardingsphere.core.routing.SQLRouteResult; import io.shardingsphere.proxy.backend.common.jdbc.ConnectionManager; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketStatementExecuteQueryResult; Loading Loading @@ -94,10 +92,8 @@ public final class JDBCStatementBackendHandler extends JDBCBackendHandler { } @Override protected PreparedStatement prepareResource(final SQLExecutionUnit sqlExecutionUnit, final SQLStatement sqlStatement) throws SQLException { Connection connection = ConnectionManager.getConnection(sqlExecutionUnit.getDataSource()); PreparedStatement result = sqlStatement instanceof InsertStatement ? connection.prepareStatement(sqlExecutionUnit.getSqlUnit().getSql(), Statement.RETURN_GENERATED_KEYS) : connection.prepareStatement(sqlExecutionUnit.getSqlUnit().getSql()); protected PreparedStatement prepareResource(final Connection connection, final String actualSQL, final SQLStatement sqlStatement) throws SQLException { PreparedStatement result = sqlStatement instanceof InsertStatement ? connection.prepareStatement(actualSQL, Statement.RETURN_GENERATED_KEYS) : connection.prepareStatement(actualSQL); for (int i = 0; i < preparedStatementParameters.size(); i++) { result.setObject(i + 1, preparedStatementParameters.get(i).getValue()); } Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/text/JDBCTextBackendHandler.java +1 −4 Original line number Diff line number Diff line Loading @@ -20,10 +20,8 @@ package io.shardingsphere.proxy.backend.common.jdbc.text; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.routing.SQLExecutionUnit; import io.shardingsphere.core.routing.SQLRouteResult; import io.shardingsphere.core.routing.StatementRoutingEngine; import io.shardingsphere.proxy.backend.common.jdbc.ConnectionManager; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketQueryResult; Loading Loading @@ -67,8 +65,7 @@ public final class JDBCTextBackendHandler extends JDBCBackendHandler { } @Override protected Statement prepareResource(final SQLExecutionUnit sqlExecutionUnit, final SQLStatement sqlStatement) throws SQLException { Connection connection = ConnectionManager.getConnection(sqlExecutionUnit.getDataSource()); protected Statement prepareResource(final Connection connection, final String actualSQL, final SQLStatement sqlStatement) throws SQLException { Statement result = connection.createStatement(); ProxyJDBCResource proxyJDBCResource = (ProxyJDBCResource) getJdbcResource(); proxyJDBCResource.addConnection(connection); Loading Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java +3 −2 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import lombok.Setter; import javax.transaction.Status; import javax.transaction.SystemException; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; Loading Loading @@ -121,7 +122,7 @@ public abstract class JDBCBackendHandler implements BackendHandler { } List<Future<CommandResponsePackets>> futureList = new ArrayList<>(1024); for (SQLExecutionUnit each : routeResult.getExecutionUnits()) { Statement statement = prepareResource(each, routeResult.getSqlStatement()); Statement statement = prepareResource(ConnectionManager.getConnection(each.getDataSource()), each.getSqlUnit().getSql(), routeResult.getSqlStatement()); futureList.add(userGroup.submit(newSubmitTask(statement, routeResult.getSqlStatement(), each.getSqlUnit().getSql()))); } List<CommandResponsePackets> packets = buildCommandResponsePackets(futureList); Loading @@ -137,7 +138,7 @@ public abstract class JDBCBackendHandler implements BackendHandler { return TransactionType.XA == ruleRegistry.getTransactionType() && SQLType.DDL == sqlType && Status.STATUS_NO_TRANSACTION != AtomikosUserTransaction.getInstance().getStatus(); } protected abstract Statement prepareResource(SQLExecutionUnit sqlExecutionUnit, SQLStatement sqlStatement) throws SQLException; protected abstract Statement prepareResource(Connection connection, String actualSQL, SQLStatement sqlStatement) throws SQLException; protected abstract Callable<CommandResponsePackets> newSubmitTask(Statement statement, SQLStatement sqlStatement, String unitSQL); Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/statement/JDBCStatementBackendHandler.java +2 −6 Original line number Diff line number Diff line Loading @@ -22,9 +22,7 @@ import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.parsing.parser.sql.dml.insert.InsertStatement; import io.shardingsphere.core.routing.PreparedStatementRoutingEngine; import io.shardingsphere.core.routing.SQLExecutionUnit; import io.shardingsphere.core.routing.SQLRouteResult; import io.shardingsphere.proxy.backend.common.jdbc.ConnectionManager; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketStatementExecuteQueryResult; Loading Loading @@ -94,10 +92,8 @@ public final class JDBCStatementBackendHandler extends JDBCBackendHandler { } @Override protected PreparedStatement prepareResource(final SQLExecutionUnit sqlExecutionUnit, final SQLStatement sqlStatement) throws SQLException { Connection connection = ConnectionManager.getConnection(sqlExecutionUnit.getDataSource()); PreparedStatement result = sqlStatement instanceof InsertStatement ? connection.prepareStatement(sqlExecutionUnit.getSqlUnit().getSql(), Statement.RETURN_GENERATED_KEYS) : connection.prepareStatement(sqlExecutionUnit.getSqlUnit().getSql()); protected PreparedStatement prepareResource(final Connection connection, final String actualSQL, final SQLStatement sqlStatement) throws SQLException { PreparedStatement result = sqlStatement instanceof InsertStatement ? connection.prepareStatement(actualSQL, Statement.RETURN_GENERATED_KEYS) : connection.prepareStatement(actualSQL); for (int i = 0; i < preparedStatementParameters.size(); i++) { result.setObject(i + 1, preparedStatementParameters.get(i).getValue()); } Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/text/JDBCTextBackendHandler.java +1 −4 Original line number Diff line number Diff line Loading @@ -20,10 +20,8 @@ package io.shardingsphere.proxy.backend.common.jdbc.text; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.routing.SQLExecutionUnit; import io.shardingsphere.core.routing.SQLRouteResult; import io.shardingsphere.core.routing.StatementRoutingEngine; import io.shardingsphere.proxy.backend.common.jdbc.ConnectionManager; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketQueryResult; Loading Loading @@ -67,8 +65,7 @@ public final class JDBCTextBackendHandler extends JDBCBackendHandler { } @Override protected Statement prepareResource(final SQLExecutionUnit sqlExecutionUnit, final SQLStatement sqlStatement) throws SQLException { Connection connection = ConnectionManager.getConnection(sqlExecutionUnit.getDataSource()); protected Statement prepareResource(final Connection connection, final String actualSQL, final SQLStatement sqlStatement) throws SQLException { Statement result = connection.createStatement(); ProxyJDBCResource proxyJDBCResource = (ProxyJDBCResource) getJdbcResource(); proxyJDBCResource.addConnection(connection); Loading