Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/ExecuteBackendHandler.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java +8 −4 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.constant.SQLType; Loading @@ -30,6 +30,10 @@ import io.shardingsphere.core.routing.SQLExecutionUnit; import io.shardingsphere.core.routing.SQLRouteResult; import io.shardingsphere.core.routing.SQLUnit; import io.shardingsphere.core.routing.router.masterslave.MasterSlaveRouter; import io.shardingsphere.proxy.backend.common.BackendHandler; import io.shardingsphere.proxy.backend.common.ProxyConnectionHolder; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.ResultList; import io.shardingsphere.proxy.backend.resource.BaseJDBCResource; import io.shardingsphere.proxy.config.RuleRegistry; import io.shardingsphere.proxy.metadata.ProxyShardingRefreshHandler; Loading Loading @@ -62,13 +66,13 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; /** * Abstract ExecuteBackendHandler for SQL or PrepareStatement. * Backend handler via JDBC to connect databases. * * @author zhaojun */ @Getter @Slf4j public abstract class ExecuteBackendHandler implements BackendHandler { public abstract class JDBCBackendHandler implements BackendHandler { private final String sql; Loading @@ -92,7 +96,7 @@ public abstract class ExecuteBackendHandler implements BackendHandler { private final List<ResultList> resultLists = new CopyOnWriteArrayList<>(); public ExecuteBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { public JDBCBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { this.sql = sql; isMerged = false; hasMoreResultValueFlag = true; Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/ExecuteWorker.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCExecuteWorker.java +4 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.routing.router.masterslave.MasterVisitedManager; Loading @@ -42,18 +42,16 @@ import java.util.List; import java.util.concurrent.Callable; /** * Execute worker. * * <p>Include SQL and PreparedStatement implement.</p> * Execute worker via JDBC to connect databases. * * @author zhaojun */ @AllArgsConstructor @Getter @Slf4j public abstract class ExecuteWorker implements Callable<CommandResponsePackets> { public abstract class JDBCExecuteWorker implements Callable<CommandResponsePackets> { private final ExecuteBackendHandler executeBackendHandler; private final JDBCBackendHandler executeBackendHandler; private final SQLStatement sqlStatement; Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/StatementExecuteBackendHandler.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/statement/JDBCStatementBackendHandler.java +8 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc.statement; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.merger.QueryResult; Loading @@ -23,6 +23,8 @@ 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.SQLRouteResult; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketStatementExecuteQueryResult; import io.shardingsphere.proxy.backend.resource.ProxyJDBCResourceFactory; import io.shardingsphere.proxy.backend.resource.ProxyPrepareJDBCResource; Loading @@ -46,19 +48,19 @@ import java.util.concurrent.Callable; import java.util.concurrent.CopyOnWriteArrayList; /** * Statement execute backend handler. * Statement protocol backend handler via JDBC to connect databases. * * @author zhangyonglun * @author zhaojun */ public final class StatementExecuteBackendHandler extends ExecuteBackendHandler implements BackendHandler { public final class JDBCStatementBackendHandler extends JDBCBackendHandler { private final List<PreparedStatementParameter> preparedStatementParameters; @Getter private final List<ColumnType> columnTypes; public StatementExecuteBackendHandler(final List<PreparedStatementParameter> preparedStatementParameters, final int statementId, public JDBCStatementBackendHandler(final List<PreparedStatementParameter> preparedStatementParameters, final int statementId, final DatabaseType databaseType, final boolean showSQL) { super(PreparedStatementRegistry.getInstance().getSQL(statementId), databaseType, showSQL); super.setJdbcResource(ProxyJDBCResourceFactory.newPrepareResource()); Loading @@ -84,7 +86,7 @@ public final class StatementExecuteBackendHandler extends ExecuteBackendHandler @Override protected Callable<CommandResponsePackets> newSubmitTask(final Statement statement, final SQLStatement sqlStatement, final String unitSql) { return new StatementExecuteWorker(this, sqlStatement, (PreparedStatement) statement); return new JDBCStatementExecuteWorker(this, sqlStatement, (PreparedStatement) statement); } @Override Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/StatementExecuteWorker.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/statement/JDBCStatementExecuteWorker.java +6 −4 Original line number Diff line number Diff line Loading @@ -15,10 +15,12 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc.statement; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.parsing.parser.sql.dml.insert.InsertStatement; import io.shardingsphere.proxy.backend.common.jdbc.JDBCExecuteWorker; import io.shardingsphere.proxy.backend.common.ResultList; import io.shardingsphere.proxy.transport.mysql.constant.ColumnType; import io.shardingsphere.proxy.transport.mysql.packet.command.CommandResponsePackets; import io.shardingsphere.proxy.transport.mysql.packet.generic.OKPacket; Loading @@ -34,13 +36,13 @@ import java.util.concurrent.Callable; * @author zhangyonglun * @author zhaojun */ public final class StatementExecuteWorker extends ExecuteWorker implements Callable<CommandResponsePackets> { public final class JDBCStatementExecuteWorker extends JDBCExecuteWorker implements Callable<CommandResponsePackets> { private static final Integer FETCH_ONE_ROW_A_TIME = Integer.MIN_VALUE; private final PreparedStatement preparedStatement; public StatementExecuteWorker(final StatementExecuteBackendHandler statementExecuteBackendHandler, final SQLStatement sqlStatement, final PreparedStatement preparedStatement) { public JDBCStatementExecuteWorker(final JDBCStatementBackendHandler statementExecuteBackendHandler, final SQLStatement sqlStatement, final PreparedStatement preparedStatement) { super(statementExecuteBackendHandler, sqlStatement); this.preparedStatement = preparedStatement; } Loading Loading @@ -69,7 +71,7 @@ public final class StatementExecuteWorker extends ExecuteWorker implements Calla @Override protected void setColumnType(final ColumnType columnType) { ((StatementExecuteBackendHandler) getExecuteBackendHandler()).getColumnTypes().add(columnType); ((JDBCStatementBackendHandler) getExecuteBackendHandler()).getColumnTypes().add(columnType); } @Override Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/SQLExecuteBackendHandler.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/text/JDBCTextBackendHandler.java +8 −6 Original line number Diff line number Diff line Loading @@ -15,13 +15,15 @@ * </p> */ package io.shardingsphere.proxy.backend.common; 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.SQLRouteResult; import io.shardingsphere.core.routing.StatementRoutingEngine; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketQueryResult; import io.shardingsphere.proxy.backend.resource.ProxyJDBCResource; import io.shardingsphere.proxy.backend.resource.ProxyJDBCResourceFactory; Loading @@ -38,17 +40,17 @@ import java.util.List; import java.util.concurrent.Callable; /** * SQL execute backend handler. * Text protocol backend handler via JDBC to connect databases. * * @author zhangliang * @author panjuan * @author zhaojun */ public final class SQLExecuteBackendHandler extends ExecuteBackendHandler implements BackendHandler { public final class JDBCTextBackendHandler extends JDBCBackendHandler { public SQLExecuteBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { public JDBCTextBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { super(sql, databaseType, showSQL); super.setJdbcResource(ProxyJDBCResourceFactory.newResource()); setJdbcResource(ProxyJDBCResourceFactory.newResource()); } @Override Loading @@ -71,7 +73,7 @@ public final class SQLExecuteBackendHandler extends ExecuteBackendHandler implem @Override protected Callable<CommandResponsePackets> newSubmitTask(final Statement statement, final SQLStatement sqlStatement, final String unitSql) { return new SQLExecuteWorker(this, sqlStatement, statement, unitSql); return new JDBCTextExecuteWorker(this, sqlStatement, statement, unitSql); } @Override Loading Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/ExecuteBackendHandler.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java +8 −4 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.constant.SQLType; Loading @@ -30,6 +30,10 @@ import io.shardingsphere.core.routing.SQLExecutionUnit; import io.shardingsphere.core.routing.SQLRouteResult; import io.shardingsphere.core.routing.SQLUnit; import io.shardingsphere.core.routing.router.masterslave.MasterSlaveRouter; import io.shardingsphere.proxy.backend.common.BackendHandler; import io.shardingsphere.proxy.backend.common.ProxyConnectionHolder; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.ResultList; import io.shardingsphere.proxy.backend.resource.BaseJDBCResource; import io.shardingsphere.proxy.config.RuleRegistry; import io.shardingsphere.proxy.metadata.ProxyShardingRefreshHandler; Loading Loading @@ -62,13 +66,13 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; /** * Abstract ExecuteBackendHandler for SQL or PrepareStatement. * Backend handler via JDBC to connect databases. * * @author zhaojun */ @Getter @Slf4j public abstract class ExecuteBackendHandler implements BackendHandler { public abstract class JDBCBackendHandler implements BackendHandler { private final String sql; Loading @@ -92,7 +96,7 @@ public abstract class ExecuteBackendHandler implements BackendHandler { private final List<ResultList> resultLists = new CopyOnWriteArrayList<>(); public ExecuteBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { public JDBCBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { this.sql = sql; isMerged = false; hasMoreResultValueFlag = true; Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/ExecuteWorker.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCExecuteWorker.java +4 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.routing.router.masterslave.MasterVisitedManager; Loading @@ -42,18 +42,16 @@ import java.util.List; import java.util.concurrent.Callable; /** * Execute worker. * * <p>Include SQL and PreparedStatement implement.</p> * Execute worker via JDBC to connect databases. * * @author zhaojun */ @AllArgsConstructor @Getter @Slf4j public abstract class ExecuteWorker implements Callable<CommandResponsePackets> { public abstract class JDBCExecuteWorker implements Callable<CommandResponsePackets> { private final ExecuteBackendHandler executeBackendHandler; private final JDBCBackendHandler executeBackendHandler; private final SQLStatement sqlStatement; Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/StatementExecuteBackendHandler.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/statement/JDBCStatementBackendHandler.java +8 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc.statement; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.merger.QueryResult; Loading @@ -23,6 +23,8 @@ 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.SQLRouteResult; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketStatementExecuteQueryResult; import io.shardingsphere.proxy.backend.resource.ProxyJDBCResourceFactory; import io.shardingsphere.proxy.backend.resource.ProxyPrepareJDBCResource; Loading @@ -46,19 +48,19 @@ import java.util.concurrent.Callable; import java.util.concurrent.CopyOnWriteArrayList; /** * Statement execute backend handler. * Statement protocol backend handler via JDBC to connect databases. * * @author zhangyonglun * @author zhaojun */ public final class StatementExecuteBackendHandler extends ExecuteBackendHandler implements BackendHandler { public final class JDBCStatementBackendHandler extends JDBCBackendHandler { private final List<PreparedStatementParameter> preparedStatementParameters; @Getter private final List<ColumnType> columnTypes; public StatementExecuteBackendHandler(final List<PreparedStatementParameter> preparedStatementParameters, final int statementId, public JDBCStatementBackendHandler(final List<PreparedStatementParameter> preparedStatementParameters, final int statementId, final DatabaseType databaseType, final boolean showSQL) { super(PreparedStatementRegistry.getInstance().getSQL(statementId), databaseType, showSQL); super.setJdbcResource(ProxyJDBCResourceFactory.newPrepareResource()); Loading @@ -84,7 +86,7 @@ public final class StatementExecuteBackendHandler extends ExecuteBackendHandler @Override protected Callable<CommandResponsePackets> newSubmitTask(final Statement statement, final SQLStatement sqlStatement, final String unitSql) { return new StatementExecuteWorker(this, sqlStatement, (PreparedStatement) statement); return new JDBCStatementExecuteWorker(this, sqlStatement, (PreparedStatement) statement); } @Override Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/StatementExecuteWorker.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/statement/JDBCStatementExecuteWorker.java +6 −4 Original line number Diff line number Diff line Loading @@ -15,10 +15,12 @@ * </p> */ package io.shardingsphere.proxy.backend.common; package io.shardingsphere.proxy.backend.common.jdbc.statement; import io.shardingsphere.core.parsing.parser.sql.SQLStatement; import io.shardingsphere.core.parsing.parser.sql.dml.insert.InsertStatement; import io.shardingsphere.proxy.backend.common.jdbc.JDBCExecuteWorker; import io.shardingsphere.proxy.backend.common.ResultList; import io.shardingsphere.proxy.transport.mysql.constant.ColumnType; import io.shardingsphere.proxy.transport.mysql.packet.command.CommandResponsePackets; import io.shardingsphere.proxy.transport.mysql.packet.generic.OKPacket; Loading @@ -34,13 +36,13 @@ import java.util.concurrent.Callable; * @author zhangyonglun * @author zhaojun */ public final class StatementExecuteWorker extends ExecuteWorker implements Callable<CommandResponsePackets> { public final class JDBCStatementExecuteWorker extends JDBCExecuteWorker implements Callable<CommandResponsePackets> { private static final Integer FETCH_ONE_ROW_A_TIME = Integer.MIN_VALUE; private final PreparedStatement preparedStatement; public StatementExecuteWorker(final StatementExecuteBackendHandler statementExecuteBackendHandler, final SQLStatement sqlStatement, final PreparedStatement preparedStatement) { public JDBCStatementExecuteWorker(final JDBCStatementBackendHandler statementExecuteBackendHandler, final SQLStatement sqlStatement, final PreparedStatement preparedStatement) { super(statementExecuteBackendHandler, sqlStatement); this.preparedStatement = preparedStatement; } Loading Loading @@ -69,7 +71,7 @@ public final class StatementExecuteWorker extends ExecuteWorker implements Calla @Override protected void setColumnType(final ColumnType columnType) { ((StatementExecuteBackendHandler) getExecuteBackendHandler()).getColumnTypes().add(columnType); ((JDBCStatementBackendHandler) getExecuteBackendHandler()).getColumnTypes().add(columnType); } @Override Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/SQLExecuteBackendHandler.java→sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/text/JDBCTextBackendHandler.java +8 −6 Original line number Diff line number Diff line Loading @@ -15,13 +15,15 @@ * </p> */ package io.shardingsphere.proxy.backend.common; 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.SQLRouteResult; import io.shardingsphere.core.routing.StatementRoutingEngine; import io.shardingsphere.proxy.backend.common.ProxyMode; import io.shardingsphere.proxy.backend.common.jdbc.JDBCBackendHandler; import io.shardingsphere.proxy.backend.mysql.MySQLPacketQueryResult; import io.shardingsphere.proxy.backend.resource.ProxyJDBCResource; import io.shardingsphere.proxy.backend.resource.ProxyJDBCResourceFactory; Loading @@ -38,17 +40,17 @@ import java.util.List; import java.util.concurrent.Callable; /** * SQL execute backend handler. * Text protocol backend handler via JDBC to connect databases. * * @author zhangliang * @author panjuan * @author zhaojun */ public final class SQLExecuteBackendHandler extends ExecuteBackendHandler implements BackendHandler { public final class JDBCTextBackendHandler extends JDBCBackendHandler { public SQLExecuteBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { public JDBCTextBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) { super(sql, databaseType, showSQL); super.setJdbcResource(ProxyJDBCResourceFactory.newResource()); setJdbcResource(ProxyJDBCResourceFactory.newResource()); } @Override Loading @@ -71,7 +73,7 @@ public final class SQLExecuteBackendHandler extends ExecuteBackendHandler implem @Override protected Callable<CommandResponsePackets> newSubmitTask(final Statement statement, final SQLStatement sqlStatement, final String unitSql) { return new SQLExecuteWorker(this, sqlStatement, statement, unitSql); return new JDBCTextExecuteWorker(this, sqlStatement, statement, unitSql); } @Override Loading