diff --git a/sharding-jdbc/src/test/java/io/shardingsphere/core/jdbc/adapter/PreparedStatementAdapterTest.java b/sharding-jdbc/src/test/java/io/shardingsphere/core/jdbc/adapter/PreparedStatementAdapterTest.java
index eab5dfdd5ae0e..578d8c9837a79 100644
--- a/sharding-jdbc/src/test/java/io/shardingsphere/core/jdbc/adapter/PreparedStatementAdapterTest.java
+++ b/sharding-jdbc/src/test/java/io/shardingsphere/core/jdbc/adapter/PreparedStatementAdapterTest.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.io.Serializable;
import java.io.StringReader;
import java.math.BigDecimal;
import java.sql.Blob;
@@ -325,9 +324,7 @@ private void assertParameter(final PreparedStatement actual, final int index, fi
assertThat(((ShardingPreparedStatement) actual).getParameters().get(index - 1), is(parameter));
}
- private static class SerializableStringReader extends StringReader implements Serializable {
-
- private static final long serialVersionUID = 5054305161835171548L;
+ private static class SerializableStringReader extends StringReader {
SerializableStringReader() {
super("value");
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryPreparedStatementUnit.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatement.java
similarity index 78%
rename from sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryPreparedStatementUnit.java
rename to sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatement.java
index 6bc93f2a8e647..e1556b2ed274d 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryPreparedStatementUnit.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatement.java
@@ -17,7 +17,6 @@
package io.shardingsphere.proxy.transport.mysql.packet.command.query.binary;
-import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.execute.PreparedStatementParameterHeader;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@@ -25,18 +24,18 @@
import java.util.List;
/**
- * SQL element.
+ * Binary prepared statement.
*
* @author zhangyonglun
*/
@RequiredArgsConstructor
@Getter
@Setter
-public final class BinaryPreparedStatementUnit {
+public final class BinaryStatement {
private final String sql;
private final int parametersCount;
- private List preparedStatementParameterHeaders;
+ private List parameterHeaders;
}
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameterHeader.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatementParameterHeader.java
similarity index 80%
rename from sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameterHeader.java
rename to sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatementParameterHeader.java
index 1371ed53cbcbb..3eac9a84d5e47 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameterHeader.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatementParameterHeader.java
@@ -15,24 +15,20 @@
*
*/
-package io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.execute;
+package io.shardingsphere.proxy.transport.mysql.packet.command.query.binary;
import io.shardingsphere.proxy.transport.mysql.constant.ColumnType;
import lombok.AllArgsConstructor;
import lombok.Getter;
-import java.io.Serializable;
-
/**
- * Prepared statement parameter header.
+ * Binary prepared statement parameter header.
*
* @author zhangyonglun
*/
@AllArgsConstructor
@Getter
-public class PreparedStatementParameterHeader implements Serializable {
-
- private static final long serialVersionUID = -672589695838350689L;
+public final class BinaryStatementParameterHeader {
private final ColumnType columnType;
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/PreparedStatementRegistry.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatementRegistry.java
similarity index 59%
rename from sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/PreparedStatementRegistry.java
rename to sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatementRegistry.java
index 9e2520cd79937..a2d75d139912c 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/PreparedStatementRegistry.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/BinaryStatementRegistry.java
@@ -25,19 +25,19 @@
import java.util.concurrent.atomic.AtomicInteger;
/**
- * Prepared statement registry.
+ * Binary prepared statement registry.
*
* @author zhangliang
* @author zhangyonglun
*/
@NoArgsConstructor(access = AccessLevel.NONE)
-public final class PreparedStatementRegistry {
+public final class BinaryStatementRegistry {
- private static final PreparedStatementRegistry INSTANCE = new PreparedStatementRegistry();
+ private static final BinaryStatementRegistry INSTANCE = new BinaryStatementRegistry();
- private final ConcurrentMap sqlToStatementIdMap = new ConcurrentHashMap<>(65535, 1);
+ private final ConcurrentMap statementIdAssigner = new ConcurrentHashMap<>(65535, 1);
- private final ConcurrentMap statementIdToBinaryPreparedStatementUnitMap = new ConcurrentHashMap<>(65535, 1);
+ private final ConcurrentMap binaryStatements = new ConcurrentHashMap<>(65535, 1);
private final AtomicInteger sequence = new AtomicInteger();
@@ -46,7 +46,7 @@ public final class PreparedStatementRegistry {
*
* @return prepared statement registry instance
*/
- public static PreparedStatementRegistry getInstance() {
+ public static BinaryStatementRegistry getInstance() {
return INSTANCE;
}
@@ -58,23 +58,23 @@ public static PreparedStatementRegistry getInstance() {
* @return statement ID
*/
public int register(final String sql, final int parametersCount) {
- Integer result = sqlToStatementIdMap.get(sql);
+ Integer result = statementIdAssigner.get(sql);
if (null != result) {
return result;
}
- int statementId = sequence.incrementAndGet();
- statementIdToBinaryPreparedStatementUnitMap.putIfAbsent(statementId, new BinaryPreparedStatementUnit(sql, parametersCount));
- sqlToStatementIdMap.putIfAbsent(sql, statementId);
- return statementId;
+ result = sequence.incrementAndGet();
+ statementIdAssigner.putIfAbsent(sql, result);
+ binaryStatements.putIfAbsent(result, new BinaryStatement(sql, parametersCount));
+ return result;
}
/**
- * Get binary prepared statement unit.
+ * Get binary prepared statement.
*
* @param statementId statement ID
- * @return binary prepared statement unit
+ * @return binary prepared statement
*/
- public BinaryPreparedStatementUnit getBinaryPreparedStatementUnit(final int statementId) {
- return statementIdToBinaryPreparedStatementUnitMap.get(statementId);
+ public BinaryStatement getBinaryStatement(final int statementId) {
+ return binaryStatements.get(statementId);
}
}
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/ComStmtExecutePacket.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/ComStmtExecutePacket.java
index e842a9f8fdfa1..9efc2711e3a8f 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/ComStmtExecutePacket.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/ComStmtExecutePacket.java
@@ -30,8 +30,9 @@
import io.shardingsphere.proxy.transport.mysql.packet.MySQLPacketPayload;
import io.shardingsphere.proxy.transport.mysql.packet.command.CommandResponsePackets;
import io.shardingsphere.proxy.transport.mysql.packet.command.query.QueryCommandPacket;
-import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.BinaryPreparedStatementUnit;
-import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.PreparedStatementRegistry;
+import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.BinaryStatement;
+import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistry;
+import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.BinaryStatementParameterHeader;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@@ -73,17 +74,17 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
private final List preparedStatementParameters = new ArrayList<>(32);
- private final BinaryPreparedStatementUnit binaryPreparedStatementUnit;
+ private final BinaryStatement binaryStatement;
private final JDBCBackendHandler jdbcBackendHandler;
public ComStmtExecutePacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
this.sequenceId = sequenceId;
statementId = payload.readInt4();
- binaryPreparedStatementUnit = PreparedStatementRegistry.getInstance().getBinaryPreparedStatementUnit(statementId);
+ binaryStatement = BinaryStatementRegistry.getInstance().getBinaryStatement(statementId);
flags = payload.readInt1();
Preconditions.checkArgument(ITERATION_COUNT == payload.readInt4());
- int parametersCount = binaryPreparedStatementUnit.getParametersCount();
+ int parametersCount = binaryStatement.getParametersCount();
if (parametersCount > 0) {
nullBitmap = new NullBitmap(parametersCount, RESERVED_BIT_LENGTH);
for (int i = 0; i < nullBitmap.getNullBitmap().length; i++) {
@@ -95,7 +96,7 @@ public ComStmtExecutePacket(final int sequenceId, final MySQLPacketPayload paylo
nullBitmap = null;
newParametersBoundFlag = null;
}
- jdbcBackendHandler = new JDBCBackendHandler(binaryPreparedStatementUnit.getSql(), JDBCExecuteEngineFactory.createBinaryProtocolInstance(preparedStatementParameters, backendConnection));
+ jdbcBackendHandler = new JDBCBackendHandler(binaryStatement.getSql(), JDBCExecuteEngineFactory.createBinaryProtocolInstance(preparedStatementParameters, backendConnection));
}
private void setParameterList(final MySQLPacketPayload payload, final int numParameters, final NewParametersBoundFlag newParametersBoundFlag) {
@@ -108,7 +109,7 @@ private void setParameterList(final MySQLPacketPayload payload, final int numPar
}
private void setParameterHeader(final MySQLPacketPayload payload, final int numParameters) {
- List parameterHeaders = new ArrayList<>(32);
+ List parameterHeaders = new ArrayList<>(32);
for (int i = 0; i < numParameters; i++) {
if (nullBitmap.isParameterNull(i)) {
preparedStatementParameters.add(new PreparedStatementParameter(NULL_PARAMETER_DEFAULT_COLUMN_TYPE, NULL_PARAMETER_DEFAULT_UNSIGNED_FLAG, null));
@@ -117,19 +118,19 @@ private void setParameterHeader(final MySQLPacketPayload payload, final int numP
ColumnType columnType = ColumnType.valueOf(payload.readInt1());
int unsignedFlag = payload.readInt1();
preparedStatementParameters.add(new PreparedStatementParameter(columnType, unsignedFlag));
- parameterHeaders.add(new PreparedStatementParameterHeader(columnType, unsignedFlag));
+ parameterHeaders.add(new BinaryStatementParameterHeader(columnType, unsignedFlag));
}
- binaryPreparedStatementUnit.setPreparedStatementParameterHeaders(parameterHeaders);
+ binaryStatement.setParameterHeaders(parameterHeaders);
}
private void setParameterHeaderFromCache(final int numParameters) {
- Iterator parameterHeaders = binaryPreparedStatementUnit.getPreparedStatementParameterHeaders().iterator();
+ Iterator parameterHeaders = binaryStatement.getParameterHeaders().iterator();
for (int i = 0; i < numParameters; i++) {
if (nullBitmap.isParameterNull(i)) {
preparedStatementParameters.add(new PreparedStatementParameter(NULL_PARAMETER_DEFAULT_COLUMN_TYPE, NULL_PARAMETER_DEFAULT_UNSIGNED_FLAG, null));
continue;
}
- PreparedStatementParameterHeader preparedStatementParameterHeader = parameterHeaders.next();
+ BinaryStatementParameterHeader preparedStatementParameterHeader = parameterHeaders.next();
preparedStatementParameters.add(new PreparedStatementParameter(preparedStatementParameterHeader.getColumnType(), preparedStatementParameterHeader.getUnsignedFlag()));
}
}
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameter.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameter.java
index 284acaafa7200..2f862eb944e18 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameter.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/execute/PreparedStatementParameter.java
@@ -18,6 +18,7 @@
package io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.execute;
import io.shardingsphere.proxy.transport.mysql.constant.ColumnType;
+import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.BinaryStatementParameterHeader;
import lombok.Getter;
import lombok.Setter;
@@ -30,16 +31,16 @@
@Setter
public final class PreparedStatementParameter {
- private final PreparedStatementParameterHeader preparedStatementParameterHeader;
+ private final BinaryStatementParameterHeader preparedStatementParameterHeader;
private Object value;
public PreparedStatementParameter(final ColumnType columnType, final int unsignedFlag) {
- preparedStatementParameterHeader = new PreparedStatementParameterHeader(columnType, unsignedFlag);
+ preparedStatementParameterHeader = new BinaryStatementParameterHeader(columnType, unsignedFlag);
}
public PreparedStatementParameter(final ColumnType columnType, final int unsignedFlag, final String value) {
- preparedStatementParameterHeader = new PreparedStatementParameterHeader(columnType, unsignedFlag);
+ preparedStatementParameterHeader = new BinaryStatementParameterHeader(columnType, unsignedFlag);
this.value = value;
}
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/prepare/ComStmtPreparePacket.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/prepare/ComStmtPreparePacket.java
index c2bd321e27576..c0039e14212e6 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/prepare/ComStmtPreparePacket.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/transport/mysql/packet/command/query/binary/prepare/ComStmtPreparePacket.java
@@ -30,7 +30,7 @@
import io.shardingsphere.proxy.transport.mysql.packet.command.CommandPacket;
import io.shardingsphere.proxy.transport.mysql.packet.command.CommandResponsePackets;
import io.shardingsphere.proxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
-import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.PreparedStatementRegistry;
+import io.shardingsphere.proxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistry;
import io.shardingsphere.proxy.transport.mysql.packet.generic.EofPacket;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@@ -47,7 +47,7 @@ public final class ComStmtPreparePacket implements CommandPacket {
private static final RuleRegistry RULE_REGISTRY = RuleRegistry.getInstance();
- private static final PreparedStatementRegistry PREPARED_STATEMENT_REGISTRY = PreparedStatementRegistry.getInstance();
+ private static final BinaryStatementRegistry PREPARED_STATEMENT_REGISTRY = BinaryStatementRegistry.getInstance();
@Getter
private final int sequenceId;