This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 78d88e1  Refactor RDLBackendHandler and remove impl of 
RDLBackendHandler (#11061)
78d88e1 is described below

commit 78d88e11f901c0deeceb1dc09cb6871035e59d80
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 29 21:30:44 2021 +0800

    Refactor RDLBackendHandler and remove impl of RDLBackendHandler (#11061)
    
    * Refactor RDLBackendHandler
    
    * Remove impl of RDLBackendHandler
    
    * Refactor RDLBackendHandler
    
    * Refactor RDLBackendHandlerFactory
    
    * Fix test case
---
 .../text/distsql/rdl/RDLBackendHandlerFactory.java | 135 +++++++--------------
 .../AlterDatabaseDiscoveryRuleBackendHandler.java  |  40 ------
 .../rdl/impl/AlterEncryptRuleBackendHandler.java   |  40 ------
 .../AlterReadwriteSplittingRuleBackendHandler.java |  40 ------
 ...terShardingBindingTableRulesBackendHandler.java |  40 ------
 ...rShardingBroadcastTableRulesBackendHandler.java |  40 ------
 .../impl/AlterShardingTableRuleBackendHandler.java |  40 ------
 .../CreateDatabaseDiscoveryRuleBackendHandler.java |  40 ------
 .../rdl/impl/CreateEncryptRuleBackendHandler.java  |  40 ------
 ...CreateReadwriteSplittingRuleBackendHandler.java |  40 ------
 ...ateShardingBindingTableRulesBackendHandler.java |  40 ------
 ...eShardingBroadcastTableRulesBackendHandler.java |  40 ------
 .../CreateShardingTableRuleBackendHandler.java     |  40 ------
 .../DropDatabaseDiscoveryRuleBackendHandler.java   |  40 ------
 .../rdl/impl/DropEncryptRuleBackendHandler.java    |  40 ------
 .../DropReadwriteSplittingRuleBackendHandler.java  |  40 ------
 ...ropShardingBindingTableRulesBackendHandler.java |  40 ------
 ...pShardingBroadcastTableRulesBackendHandler.java |  40 ------
 .../impl/DropShardingTableRuleBackendHandler.java  |  40 ------
 .../text/distsql/rdl/impl/RDLBackendHandler.java   |  24 ++--
 .../distsql/DistSQLBackendHandlerFactoryTest.java  |   2 +-
 ...terDatabaseDiscoveryRuleBackendHandlerTest.java |   2 +-
 .../impl/AlterEncryptRuleBackendHandlerTest.java   |   4 +-
 ...erReadwriteSplittingRuleBackendHandlerTest.java |   2 +-
 ...hardingBindingTableRulesBackendHandlerTest.java |  22 ++--
 ...rdingBroadcastTableRulesBackendHandlerTest.java |  14 +--
 .../AlterShardingTableRuleBackendHandlerTest.java  |   2 +-
 ...ateDatabaseDiscoveryRuleBackendHandlerTest.java |   2 +-
 .../impl/CreateEncryptRuleBackendHandlerTest.java  |   6 +-
 ...teReadwriteSplittingRuleBackendHandlerTest.java |   2 +-
 ...hardingBindingTableRulesBackendHandlerTest.java |  40 +++---
 ...rdingBroadcastTableRulesBackendHandlerTest.java |  20 +--
 .../CreateShardingTableRuleBackendHandlerTest.java |   3 +-
 ...ropDatabaseDiscoveryRuleBackendHandlerTest.java |   2 +-
 .../impl/DropEncryptRuleBackendHandlerTest.java    |   4 +-
 ...opReadwriteSplittingRuleBackendHandlerTest.java |   4 +-
 ...hardingBindingTableRulesBackendHandlerTest.java |   2 +-
 ...rdingBroadcastTableRulesBackendHandlerTest.java |   4 +-
 .../DropShardingTableRuleBackendHandlerTest.java   |   4 +-
 39 files changed, 126 insertions(+), 894 deletions(-)

diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/RDLBackendHandlerFactory.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/RDLBackendHandlerFactory.java
index 22a7efd..29de5e9 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/RDLBackendHandlerFactory.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/RDLBackendHandlerFactory.java
@@ -19,53 +19,41 @@ package 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.AlterReadwriteSplittingRuleStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBroadcastTableRulesStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
-import 
org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.CreateEncryptRuleStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBroadcastTableRulesStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.DropDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.DropEncryptRuleStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBroadcastTableRulesStatement;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
+import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
+import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.CreateEncryptRuleStatement;
+import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.DropEncryptRuleStatement;
+import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandler;
 import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AddResourceBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AlterDatabaseDiscoveryRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AlterEncryptRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AlterReadwriteSplittingRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AlterShardingBindingTableRulesBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AlterShardingBroadcastTableRulesBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.AlterShardingTableRuleBackendHandler;
 import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateDatabaseBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateDatabaseDiscoveryRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateEncryptRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateReadwriteSplittingRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateShardingBindingTableRulesBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateShardingBroadcastTableRulesBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.CreateShardingTableRuleBackendHandler;
 import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropDatabaseBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropDatabaseDiscoveryRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropEncryptRuleBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropReadwriteSplittingRuleBackendHandler;
 import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropResourceBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropShardingBindingTableRulesBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropShardingBroadcastTableRulesBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.DropShardingTableRuleBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl.RDLBackendHandler;
+import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.AlterReadwriteSplittingRuleStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
+import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBroadcastTableRulesStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBroadcastTableRulesStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBroadcastTableRulesStatement;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateDatabaseStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropDatabaseStatement;
@@ -76,6 +64,7 @@ import java.util.Optional;
 /**
  * RDL backend handler factory.
  */
+@SuppressWarnings("unchecked")
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class RDLBackendHandlerFactory {
     
@@ -112,63 +101,31 @@ public final class RDLBackendHandlerFactory {
         if (sqlStatement instanceof CreateDatabaseStatement) {
             return Optional.of(new 
CreateDatabaseBackendHandler((CreateDatabaseStatement) sqlStatement));
         }
-        if (sqlStatement instanceof CreateShardingTableRuleStatement) {
-            return Optional.of(new 
CreateShardingTableRuleBackendHandler((CreateShardingTableRuleStatement) 
sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof CreateShardingBindingTableRulesStatement) {
-            return Optional.of(new 
CreateShardingBindingTableRulesBackendHandler((CreateShardingBindingTableRulesStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof 
CreateShardingBroadcastTableRulesStatement) {
-            return Optional.of(new 
CreateShardingBroadcastTableRulesBackendHandler((CreateShardingBroadcastTableRulesStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof AlterShardingTableRuleStatement) {
-            return Optional.of(new 
AlterShardingTableRuleBackendHandler((AlterShardingTableRuleStatement) 
sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof AlterShardingBindingTableRulesStatement) {
-            return Optional.of(new 
AlterShardingBindingTableRulesBackendHandler((AlterShardingBindingTableRulesStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof AlterShardingBroadcastTableRulesStatement) 
{
-            return Optional.of(new 
AlterShardingBroadcastTableRulesBackendHandler((AlterShardingBroadcastTableRulesStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof CreateReadwriteSplittingRuleStatement) {
-            return Optional.of(new 
CreateReadwriteSplittingRuleBackendHandler((CreateReadwriteSplittingRuleStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof AlterReadwriteSplittingRuleStatement) {
-            return Optional.of(new 
AlterReadwriteSplittingRuleBackendHandler((AlterReadwriteSplittingRuleStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof DropReadwriteSplittingRuleStatement) {
-            return Optional.of(new 
DropReadwriteSplittingRuleBackendHandler((DropReadwriteSplittingRuleStatement) 
sqlStatement, backendConnection));
-        }
         if (sqlStatement instanceof DropDatabaseStatement) {
             return Optional.of(new 
DropDatabaseBackendHandler((DropDatabaseStatement) sqlStatement, 
backendConnection));
         }
-        if (sqlStatement instanceof DropShardingTableRuleStatement) {
-            return Optional.of(new 
DropShardingTableRuleBackendHandler((DropShardingTableRuleStatement) 
sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof DropShardingBindingTableRulesStatement) {
-            return Optional.of(new 
DropShardingBindingTableRulesBackendHandler((DropShardingBindingTableRulesStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof DropShardingBroadcastTableRulesStatement) {
-            return Optional.of(new 
DropShardingBroadcastTableRulesBackendHandler((DropShardingBroadcastTableRulesStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof CreateDatabaseDiscoveryRuleStatement) {
-            return Optional.of(new 
CreateDatabaseDiscoveryRuleBackendHandler((CreateDatabaseDiscoveryRuleStatement)
 sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof AlterDatabaseDiscoveryRuleStatement) {
-            return Optional.of(new 
AlterDatabaseDiscoveryRuleBackendHandler((AlterDatabaseDiscoveryRuleStatement) 
sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof DropDatabaseDiscoveryRuleStatement) {
-            return Optional.of(new 
DropDatabaseDiscoveryRuleBackendHandler((DropDatabaseDiscoveryRuleStatement) 
sqlStatement, backendConnection));
-        }
-        if (sqlStatement instanceof CreateEncryptRuleStatement) {
-            return Optional.of(new 
CreateEncryptRuleBackendHandler((CreateEncryptRuleStatement) sqlStatement, 
backendConnection));
-        }
-        if (sqlStatement instanceof DropEncryptRuleStatement) {
-            return Optional.of(new 
DropEncryptRuleBackendHandler((DropEncryptRuleStatement) sqlStatement, 
backendConnection));
-        }
-        if (sqlStatement instanceof AlterEncryptRuleStatement) {
-            return Optional.of(new 
AlterEncryptRuleBackendHandler((AlterEncryptRuleStatement) sqlStatement, 
backendConnection));
-        }
-        return Optional.empty();
+        return Optional.of(new RDLBackendHandler<>(sqlStatement, 
backendConnection, getRuleConfigurationClass(sqlStatement)));
+    }
+    
+    private static Class<? extends RuleConfiguration> 
getRuleConfigurationClass(final SQLStatement sqlStatement) {
+        if (sqlStatement instanceof CreateShardingTableRuleStatement || 
sqlStatement instanceof AlterShardingTableRuleStatement || sqlStatement 
instanceof DropShardingTableRuleStatement
+                || sqlStatement instanceof 
CreateShardingBindingTableRulesStatement || sqlStatement instanceof 
AlterShardingBindingTableRulesStatement
+                || sqlStatement instanceof 
DropShardingBindingTableRulesStatement
+                || sqlStatement instanceof 
CreateShardingBroadcastTableRulesStatement || sqlStatement instanceof 
AlterShardingBroadcastTableRulesStatement
+                || sqlStatement instanceof 
DropShardingBroadcastTableRulesStatement) {
+            return ShardingRuleConfiguration.class;
+        }
+        if (sqlStatement instanceof CreateReadwriteSplittingRuleStatement
+                || sqlStatement instanceof 
AlterReadwriteSplittingRuleStatement || sqlStatement instanceof 
DropReadwriteSplittingRuleStatement) {
+            return ReadwriteSplittingRuleConfiguration.class;
+        }
+        if (sqlStatement instanceof CreateDatabaseDiscoveryRuleStatement
+                || sqlStatement instanceof AlterDatabaseDiscoveryRuleStatement 
|| sqlStatement instanceof DropDatabaseDiscoveryRuleStatement) {
+            return DatabaseDiscoveryRuleConfiguration.class;
+        }
+        if (sqlStatement instanceof CreateEncryptRuleStatement || sqlStatement 
instanceof AlterEncryptRuleStatement || sqlStatement instanceof 
DropEncryptRuleStatement) {
+            return EncryptRuleConfiguration.class;
+        }
+        throw new 
UnsupportedOperationException(sqlStatement.getClass().getCanonicalName());
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
deleted file mode 100644
index beabd82..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-
-/**
- * Alter database discovery rule backend handler.
- */
-public final class AlterDatabaseDiscoveryRuleBackendHandler extends 
RDLBackendHandler<AlterDatabaseDiscoveryRuleStatement, 
DatabaseDiscoveryRuleConfiguration> {
-    
-    public AlterDatabaseDiscoveryRuleBackendHandler(final 
AlterDatabaseDiscoveryRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
AlterDatabaseDiscoveryRuleStatement sqlStatement, final 
DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
AlterDatabaseDiscoveryRuleStatement sqlStatement, final 
DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
deleted file mode 100644
index 561b56f..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-
-/**
- * Alter encrypt rule backend handler.
- */
-public final class AlterEncryptRuleBackendHandler extends 
RDLBackendHandler<AlterEncryptRuleStatement, EncryptRuleConfiguration> {
-    
-    public AlterEncryptRuleBackendHandler(final AlterEncryptRuleStatement 
sqlStatement, final BackendConnection backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
AlterEncryptRuleStatement sqlStatement, final EncryptRuleConfiguration 
currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
AlterEncryptRuleStatement sqlStatement, final EncryptRuleConfiguration 
currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java
deleted file mode 100644
index 9ec3f28..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.AlterReadwriteSplittingRuleStatement;
-
-/**
- * Alter readwrite-splitting rule backend handler.
- */
-public final class AlterReadwriteSplittingRuleBackendHandler extends 
RDLBackendHandler<AlterReadwriteSplittingRuleStatement, 
ReadwriteSplittingRuleConfiguration> {
-    
-    public AlterReadwriteSplittingRuleBackendHandler(final 
AlterReadwriteSplittingRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
AlterReadwriteSplittingRuleStatement sqlStatement, final 
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
AlterReadwriteSplittingRuleStatement sqlStatement, final 
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java
deleted file mode 100644
index aafce23..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
-
-/**
- * Alter sharding binding table rule backend handler.
- */
-public final class AlterShardingBindingTableRulesBackendHandler extends 
RDLBackendHandler<AlterShardingBindingTableRulesStatement, 
ShardingRuleConfiguration> {
-    
-    public AlterShardingBindingTableRulesBackendHandler(final 
AlterShardingBindingTableRulesStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
AlterShardingBindingTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
AlterShardingBindingTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java
deleted file mode 100644
index b55cbfc..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBroadcastTableRulesStatement;
-
-/**
- * Alter sharding broadcast table rule backend handler.
- */
-public final class AlterShardingBroadcastTableRulesBackendHandler extends 
RDLBackendHandler<AlterShardingBroadcastTableRulesStatement, 
ShardingRuleConfiguration> {
-    
-    public AlterShardingBroadcastTableRulesBackendHandler(final 
AlterShardingBroadcastTableRulesStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
AlterShardingBroadcastTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
AlterShardingBroadcastTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java
deleted file mode 100644
index fe65fe2..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
-
-/**
- * Alter sharding table rule backend handler.
- */
-public final class AlterShardingTableRuleBackendHandler extends 
RDLBackendHandler<AlterShardingTableRuleStatement, ShardingRuleConfiguration> {
-    
-    public AlterShardingTableRuleBackendHandler(final 
AlterShardingTableRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
AlterShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration 
currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
AlterShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration 
currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java
deleted file mode 100644
index 8c383de..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-
-/**
- * Create database discovery rule backend handler.
- */
-public final class CreateDatabaseDiscoveryRuleBackendHandler extends 
RDLBackendHandler<CreateDatabaseDiscoveryRuleStatement, 
DatabaseDiscoveryRuleConfiguration> {
-    
-    public CreateDatabaseDiscoveryRuleBackendHandler(final 
CreateDatabaseDiscoveryRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
CreateDatabaseDiscoveryRuleStatement sqlStatement, final 
DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
CreateDatabaseDiscoveryRuleStatement sqlStatement, final 
DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
deleted file mode 100644
index d813a8d..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.CreateEncryptRuleStatement;
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-
-/**
- * Create encrypt rule backend handler.
- */
-public final class CreateEncryptRuleBackendHandler extends 
RDLBackendHandler<CreateEncryptRuleStatement, EncryptRuleConfiguration> {
-    
-    public CreateEncryptRuleBackendHandler(final CreateEncryptRuleStatement 
sqlStatement, final BackendConnection backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
CreateEncryptRuleStatement sqlStatement, final EncryptRuleConfiguration 
currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
CreateEncryptRuleStatement sqlStatement, final EncryptRuleConfiguration 
currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java
deleted file mode 100644
index c780349..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
-
-/**
- * Create readwrite splitting rule backend handler.
- */
-public final class CreateReadwriteSplittingRuleBackendHandler extends 
RDLBackendHandler<CreateReadwriteSplittingRuleStatement, 
ReadwriteSplittingRuleConfiguration> {
-    
-    public CreateReadwriteSplittingRuleBackendHandler(final 
CreateReadwriteSplittingRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
CreateReadwriteSplittingRuleStatement sqlStatement, final 
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
CreateReadwriteSplittingRuleStatement sqlStatement, final 
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java
deleted file mode 100644
index 52ed613..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
-
-/**
- * Create sharding binding table rule backend handler.
- */
-public final class CreateShardingBindingTableRulesBackendHandler extends 
RDLBackendHandler<CreateShardingBindingTableRulesStatement, 
ShardingRuleConfiguration> {
-    
-    public CreateShardingBindingTableRulesBackendHandler(final 
CreateShardingBindingTableRulesStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
CreateShardingBindingTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
CreateShardingBindingTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java
deleted file mode 100644
index c88ac0b..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBroadcastTableRulesStatement;
-
-/**
- * Create sharding broadcast table rule backend handler.
- */
-public final class CreateShardingBroadcastTableRulesBackendHandler extends 
RDLBackendHandler<CreateShardingBroadcastTableRulesStatement, 
ShardingRuleConfiguration> {
-    
-    public CreateShardingBroadcastTableRulesBackendHandler(final 
CreateShardingBroadcastTableRulesStatement sqlStatement, final 
BackendConnection backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
CreateShardingBroadcastTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
CreateShardingBroadcastTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java
deleted file mode 100644
index b321b92..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
-
-/**
- * Create sharding table rule backend handler.
- */
-public final class CreateShardingTableRuleBackendHandler extends 
RDLBackendHandler<CreateShardingTableRuleStatement, ShardingRuleConfiguration> {
-    
-    public CreateShardingTableRuleBackendHandler(final 
CreateShardingTableRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
CreateShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration 
currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
CreateShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration 
currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
deleted file mode 100644
index 3a2d2a2..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.DropDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-
-/**
- * Drop database discovery rule backend handler.
- */
-public final class DropDatabaseDiscoveryRuleBackendHandler extends 
RDLBackendHandler<DropDatabaseDiscoveryRuleStatement, 
DatabaseDiscoveryRuleConfiguration> {
-    
-    public DropDatabaseDiscoveryRuleBackendHandler(final 
DropDatabaseDiscoveryRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
DropDatabaseDiscoveryRuleStatement sqlStatement, final 
DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
DropDatabaseDiscoveryRuleStatement sqlStatement, final 
DatabaseDiscoveryRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java
deleted file mode 100644
index 05995da..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.DropEncryptRuleStatement;
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-
-/**
- * Drop encrypt rule backend handler.
- */
-public final class DropEncryptRuleBackendHandler extends 
RDLBackendHandler<DropEncryptRuleStatement, EncryptRuleConfiguration> {
-    
-    public DropEncryptRuleBackendHandler(final DropEncryptRuleStatement 
sqlStatement, final BackendConnection backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
DropEncryptRuleStatement sqlStatement, final EncryptRuleConfiguration 
currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
DropEncryptRuleStatement sqlStatement, final EncryptRuleConfiguration 
currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java
deleted file mode 100644
index df29a9e..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
-
-/**
- * Drop readwrite splitting rule backend handler.
- */
-public final class DropReadwriteSplittingRuleBackendHandler extends 
RDLBackendHandler<DropReadwriteSplittingRuleStatement, 
ReadwriteSplittingRuleConfiguration> {
-    
-    public DropReadwriteSplittingRuleBackendHandler(final 
DropReadwriteSplittingRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
DropReadwriteSplittingRuleStatement sqlStatement, final 
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
DropReadwriteSplittingRuleStatement sqlStatement, final 
ReadwriteSplittingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java
deleted file mode 100644
index 7073241..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBindingTableRulesStatement;
-
-/**
- * Drop sharding binding table rules backend handler.
- */
-public final class DropShardingBindingTableRulesBackendHandler extends 
RDLBackendHandler<DropShardingBindingTableRulesStatement, 
ShardingRuleConfiguration> {
-    
-    public DropShardingBindingTableRulesBackendHandler(final 
DropShardingBindingTableRulesStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
DropShardingBindingTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
DropShardingBindingTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java
deleted file mode 100644
index 76f8c47..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBroadcastTableRulesStatement;
-
-/**
- * Drop sharding broadcast table rules backend handler.
- */
-public final class DropShardingBroadcastTableRulesBackendHandler extends 
RDLBackendHandler<DropShardingBroadcastTableRulesStatement, 
ShardingRuleConfiguration> {
-    
-    public DropShardingBroadcastTableRulesBackendHandler(final 
DropShardingBroadcastTableRulesStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
DropShardingBroadcastTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
DropShardingBroadcastTableRulesStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java
deleted file mode 100644
index 02a537c..0000000
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
-
-import 
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
-
-/**
- * Drop sharding table rule backend handler.
- */
-public final class DropShardingTableRuleBackendHandler extends 
RDLBackendHandler<DropShardingTableRuleStatement, ShardingRuleConfiguration> {
-    
-    public DropShardingTableRuleBackendHandler(final 
DropShardingTableRuleStatement sqlStatement, final BackendConnection 
backendConnection) {
-        super(sqlStatement, backendConnection);
-    }
-    
-    @Override
-    public void checkSQLStatement(final String schemaName, final 
DropShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration 
currentRuleConfig) {
-    }
-    
-    @Override
-    public void updateCurrentRuleConfiguration(final String schemaName, final 
DropShardingTableRuleStatement sqlStatement, final ShardingRuleConfiguration 
currentRuleConfig) {
-    }
-}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
index 1208a71..ea10586 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/RDLBackendHandler.java
@@ -19,7 +19,6 @@ package 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
 import 
org.apache.shardingsphere.governance.core.registry.config.event.rule.RuleConfigurationsAlteredSQLNotificationEvent;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import org.apache.shardingsphere.infra.config.scope.SchemaRuleConfiguration;
 import org.apache.shardingsphere.infra.distsql.update.RDLAlterUpdater;
 import org.apache.shardingsphere.infra.distsql.update.RDLCreateUpdater;
 import org.apache.shardingsphere.infra.distsql.update.RDLDropUpdater;
@@ -34,7 +33,6 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResp
 import 
org.apache.shardingsphere.proxy.backend.text.SchemaRequiredBackendHandler;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
-import java.lang.reflect.ParameterizedType;
 import java.util.Optional;
 import java.util.Properties;
 
@@ -42,22 +40,24 @@ import java.util.Properties;
  * RDL backend handler.
  *
  * @param <T> type of SQL statement
- * @param <R> type of rule configuration
  */
-public abstract class RDLBackendHandler<T extends SQLStatement, R extends 
SchemaRuleConfiguration> extends SchemaRequiredBackendHandler<T> {
+public final class RDLBackendHandler<T extends SQLStatement> extends 
SchemaRequiredBackendHandler<T> {
+    
+    private final Class<? extends RuleConfiguration> ruleConfigClass;
     
     static {
         ShardingSphereServiceLoader.register(RDLUpdater.class);
     }
     
-    public RDLBackendHandler(final T sqlStatement, final BackendConnection 
backendConnection) {
+    public RDLBackendHandler(final T sqlStatement, final BackendConnection 
backendConnection, final Class<? extends RuleConfiguration> ruleConfigClass) {
         super(sqlStatement, backendConnection);
+        this.ruleConfigClass = ruleConfigClass;
     }
     
     @SuppressWarnings({"rawtypes", "unchecked"})
     @Override
-    protected final ResponseHeader execute(final String schemaName, final T 
sqlStatement) {
-        R currentRuleConfig = 
findCurrentRuleConfiguration(schemaName).orElse(null);
+    protected ResponseHeader execute(final String schemaName, final T 
sqlStatement) {
+        RuleConfiguration currentRuleConfig = 
findCurrentRuleConfiguration(schemaName).orElse(null);
         RDLUpdater rdlUpdater = 
TypedSPIRegistry.getRegisteredService(RDLUpdater.class, 
sqlStatement.getClass().getCanonicalName(), new Properties());
         rdlUpdater.checkSQLStatement(schemaName, sqlStatement, 
currentRuleConfig, 
ProxyContext.getInstance().getMetaData(schemaName).getResource());
         if (rdlUpdater instanceof RDLCreateUpdater) {
@@ -79,21 +79,15 @@ public abstract class RDLBackendHandler<T extends 
SQLStatement, R extends Schema
         return new UpdateResponseHeader(sqlStatement);
     }
     
-    @SuppressWarnings("unchecked")
-    private Optional<R> findCurrentRuleConfiguration(final String schemaName) {
-        Class<R> ruleConfigClass = (Class<R>) ((ParameterizedType) 
getClass().getGenericSuperclass()).getActualTypeArguments()[1];
+    private Optional<RuleConfiguration> findCurrentRuleConfiguration(final 
String schemaName) {
         for (RuleConfiguration each : 
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations())
 {
             if (ruleConfigClass.isAssignableFrom(each.getClass())) {
-                return Optional.of((R) each);
+                return Optional.of(each);
             }
         }
         return Optional.empty();
     }
     
-    protected abstract void checkSQLStatement(String schemaName, T 
sqlStatement, R currentRuleConfig);
-    
-    protected abstract void updateCurrentRuleConfiguration(String schemaName, 
T sqlStatement, R currentRuleConfig);
-    
     private void postRuleConfigurationChange(final String schemaName) {
         ShardingSphereEventBus.getInstance().post(
                 new RuleConfigurationsAlteredSQLNotificationEvent(schemaName, 
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations()));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
index 585c06c..5d4dd83 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -260,7 +260,7 @@ public final class DistSQLBackendHandlerFactoryTest {
         assertThat(response, instanceOf(UpdateResponseHeader.class));
     }
     
-    @Test(expected = ClassCastException.class)
+    @Test(expected = UnsupportedOperationException.class)
     public void assertExecuteShowResourceContext() throws SQLException {
         BackendConnection connection = mock(BackendConnection.class);
         when(connection.getSchemaName()).thenReturn("schema");
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
index a217d38..5709a25 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
@@ -79,7 +79,7 @@ public final class 
AlterDatabaseDiscoveryRuleBackendHandlerTest {
     @Mock
     private DatabaseDiscoveryDataSourceRuleConfiguration 
databaseDiscoveryDataSourceRuleConfiguration;
     
-    private final AlterDatabaseDiscoveryRuleBackendHandler handler = new 
AlterDatabaseDiscoveryRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<AlterDatabaseDiscoveryRuleStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
DatabaseDiscoveryRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandlerTest.java
index c924581..bf5cd29 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandlerTest.java
@@ -20,9 +20,9 @@ package 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
 import 
org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptColumnSegment;
 import 
org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptRuleSegment;
+import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -76,7 +76,7 @@ public final class AlterEncryptRuleBackendHandlerTest {
     @Mock
     private EncryptTableRuleConfiguration encryptTableRuleConfig;
     
-    private final AlterEncryptRuleBackendHandler handler = new 
AlterEncryptRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<AlterEncryptRuleStatement> handler = new 
RDLBackendHandler<>(sqlStatement, backendConnection, 
EncryptRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandlerTest.java
index 32a8651..46c71f6 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterReadwriteSplittingRuleBackendHandlerTest.java
@@ -80,7 +80,7 @@ public final class 
AlterReadwriteSplittingRuleBackendHandlerTest {
     @Mock
     private ReadwriteSplittingDataSourceRuleConfiguration 
readwriteSplittingDataSourceRuleConfiguration;
     
-    private final AlterReadwriteSplittingRuleBackendHandler handler = new 
AlterReadwriteSplittingRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<AlterReadwriteSplittingRuleStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
ReadwriteSplittingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandlerTest.java
index 1361485..b5f2f65 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBindingTableRulesBackendHandlerTest.java
@@ -17,8 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
@@ -30,6 +28,8 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
@@ -74,9 +74,9 @@ public final class 
AlterShardingBindingTableRulesBackendHandlerTest {
     @Test
     public void assertExecute() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singletonList(buildShardingRuleConfiguration()));
-        AlterShardingBindingTableRulesStatement statement = 
buildShardingTableRuleStatement();
-        AlterShardingBindingTableRulesBackendHandler handler = new 
AlterShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        AlterShardingBindingTableRulesStatement sqlStatement = 
buildShardingTableRuleStatement();
+        RDLBackendHandler<AlterShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
@@ -84,9 +84,9 @@ public final class 
AlterShardingBindingTableRulesBackendHandlerTest {
     @Test(expected = ShardingTableRuleNotExistedException.class)
     public void assertExecuteWithNotExistTableRule() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singletonList(new
 ShardingRuleConfiguration()));
-        AlterShardingBindingTableRulesStatement statement = 
buildShardingTableRuleStatement();
-        AlterShardingBindingTableRulesBackendHandler handler = new 
AlterShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        AlterShardingBindingTableRulesStatement sqlStatement = 
buildShardingTableRuleStatement();
+        RDLBackendHandler<AlterShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
@@ -94,9 +94,9 @@ public final class 
AlterShardingBindingTableRulesBackendHandlerTest {
     @Test(expected = DuplicateBindingTablesException.class)
     public void assertExecuteWithDuplicateTables() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singletonList(buildShardingRuleConfiguration()));
-        AlterShardingBindingTableRulesStatement statement = 
buildDuplicateShardingTableRuleStatement();
-        AlterShardingBindingTableRulesBackendHandler handler = new 
AlterShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        handler.execute("test", statement);
+        AlterShardingBindingTableRulesStatement sqlStatement = 
buildDuplicateShardingTableRuleStatement();
+        RDLBackendHandler<AlterShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        handler.execute("test", sqlStatement);
     }
     
     private ShardingRuleConfiguration buildShardingRuleConfiguration() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandlerTest.java
index 3fb21ca..08d0b05 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingBroadcastTableRulesBackendHandlerTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
@@ -27,6 +26,7 @@ import 
org.apache.shardingsphere.proxy.backend.exception.ShardingBroadcastTableR
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,9 +71,9 @@ public final class 
AlterShardingBroadcastTableRulesBackendHandlerTest {
     @Test(expected = ShardingBroadcastTableRuleNotExistsException.class)
     public void assertExecuteWithoutShardingRuleConfiguration() {
         when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(new 
ArrayList<>());
-        AlterShardingBroadcastTableRulesStatement statement = new 
AlterShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
-        AlterShardingBroadcastTableRulesBackendHandler handler = new 
AlterShardingBroadcastTableRulesBackendHandler(statement, backendConnection);
-        handler.execute("test", statement);
+        AlterShardingBroadcastTableRulesStatement sqlStatement = new 
AlterShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
+        RDLBackendHandler<AlterShardingBroadcastTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        handler.execute("test", sqlStatement);
     }
     
     @Test
@@ -81,9 +81,9 @@ public final class 
AlterShardingBroadcastTableRulesBackendHandlerTest {
         ShardingRuleConfiguration shardingRuleConfiguration = new 
ShardingRuleConfiguration();
         shardingRuleConfiguration.getBroadcastTables().add("t_1");
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(shardingRuleConfiguration));
-        AlterShardingBroadcastTableRulesStatement statement = new 
AlterShardingBroadcastTableRulesStatement(Collections.singleton("t_2"));
-        AlterShardingBroadcastTableRulesBackendHandler handler = new 
AlterShardingBroadcastTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        AlterShardingBroadcastTableRulesStatement sqlStatement = new 
AlterShardingBroadcastTableRulesStatement(Collections.singleton("t_2"));
+        RDLBackendHandler<AlterShardingBroadcastTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandlerTest.java
index 639a69f..f337f58 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterShardingTableRuleBackendHandlerTest.java
@@ -79,7 +79,7 @@ public final class AlterShardingTableRuleBackendHandlerTest {
     @Mock
     private ShardingSphereResource shardingSphereResource;
     
-    private final AlterShardingTableRuleBackendHandler handler = new 
AlterShardingTableRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<AlterShardingTableRuleStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandlerTest.java
index 07ce1c0..c7ab328 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateDatabaseDiscoveryRuleBackendHandlerTest.java
@@ -76,7 +76,7 @@ public final class 
CreateDatabaseDiscoveryRuleBackendHandlerTest {
     @Mock
     private ShardingSphereResource shardingSphereResource;
     
-    private final CreateDatabaseDiscoveryRuleBackendHandler handler = new 
CreateDatabaseDiscoveryRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<CreateDatabaseDiscoveryRuleStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
DatabaseDiscoveryRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandlerTest.java
index 8ba43d8..161ca4b 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandlerTest.java
@@ -19,11 +19,11 @@ package 
org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
 import com.google.common.collect.Maps;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
+import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptColumnSegment;
 import 
org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptRuleSegment;
 import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.CreateEncryptRuleStatement;
-import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -72,7 +72,7 @@ public final class CreateEncryptRuleBackendHandlerTest {
     @Mock
     private ShardingSphereRuleMetaData ruleMetaData;
     
-    private final CreateEncryptRuleBackendHandler handler = new 
CreateEncryptRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<CreateEncryptRuleStatement> handler = new 
RDLBackendHandler<>(sqlStatement, backendConnection, 
EncryptRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandlerTest.java
index c42251a..336425e 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateReadwriteSplittingRuleBackendHandlerTest.java
@@ -78,7 +78,7 @@ public final class 
CreateReadwriteSplittingRuleBackendHandlerTest {
     @Mock
     private ShardingSphereResource shardingSphereResource;
     
-    private final CreateReadwriteSplittingRuleBackendHandler handler = new 
CreateReadwriteSplittingRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<CreateReadwriteSplittingRuleStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
ReadwriteSplittingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandlerTest.java
index bffc260..50ef35d 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBindingTableRulesBackendHandlerTest.java
@@ -17,8 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
@@ -30,6 +28,8 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
@@ -74,9 +74,9 @@ public final class 
CreateShardingBindingTableRulesBackendHandlerTest {
     @Test
     public void assertExecute() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(buildShardingRuleConfiguration()));
-        CreateShardingBindingTableRulesStatement statement = 
buildShardingTableRuleStatement();
-        CreateShardingBindingTableRulesBackendHandler handler = new 
CreateShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        CreateShardingBindingTableRulesStatement sqlStatement = 
buildShardingTableRuleStatement();
+        RDLBackendHandler<CreateShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
@@ -84,9 +84,9 @@ public final class 
CreateShardingBindingTableRulesBackendHandlerTest {
     @Test(expected = ShardingTableRuleNotExistedException.class)
     public void assertExecuteWithNotExistTableRule() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(new
 ShardingRuleConfiguration()));
-        CreateShardingBindingTableRulesStatement statement = 
buildShardingTableRuleStatement();
-        CreateShardingBindingTableRulesBackendHandler handler = new 
CreateShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        CreateShardingBindingTableRulesStatement sqlStatement = 
buildShardingTableRuleStatement();
+        RDLBackendHandler<CreateShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
@@ -94,26 +94,26 @@ public final class 
CreateShardingBindingTableRulesBackendHandlerTest {
     @Test(expected = DuplicateBindingTablesException.class)
     public void assertExecuteWithDuplicateTablesInSQL() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(buildShardingRuleConfiguration()));
-        CreateShardingBindingTableRulesStatement statement = 
buildDuplicateShardingTableRuleStatement();
-        CreateShardingBindingTableRulesBackendHandler handler = new 
CreateShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        handler.execute("test", statement);
+        CreateShardingBindingTableRulesStatement sqlStatement = 
buildDuplicateShardingTableRuleStatement();
+        RDLBackendHandler<CreateShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        handler.execute("test", sqlStatement);
     }
     
     @Test(expected = DuplicateBindingTablesException.class)
     public void assertExecuteWithDuplicateTablesInShardingRule() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(buildShardingBindingTableRuleConfiguration()));
-        CreateShardingBindingTableRulesStatement statement = 
buildShardingTableRuleStatement();
-        CreateShardingBindingTableRulesBackendHandler handler = new 
CreateShardingBindingTableRulesBackendHandler(statement, backendConnection);
-        handler.execute("test", statement);
+        CreateShardingBindingTableRulesStatement sqlStatement = 
buildShardingTableRuleStatement();
+        RDLBackendHandler<CreateShardingBindingTableRulesStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        handler.execute("test", sqlStatement);
     }
     
     private ShardingRuleConfiguration buildShardingRuleConfiguration() {
-        ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
-        shardingRuleConfig.getTables().add(new 
ShardingTableRuleConfiguration("t_order"));
-        shardingRuleConfig.getTables().add(new 
ShardingTableRuleConfiguration("t_order_item"));
-        shardingRuleConfig.getTables().add(new 
ShardingTableRuleConfiguration("t_1"));
-        shardingRuleConfig.getTables().add(new 
ShardingTableRuleConfiguration("t_2"));
-        return shardingRuleConfig;
+        ShardingRuleConfiguration result = new ShardingRuleConfiguration();
+        result.getTables().add(new ShardingTableRuleConfiguration("t_order"));
+        result.getTables().add(new 
ShardingTableRuleConfiguration("t_order_item"));
+        result.getTables().add(new ShardingTableRuleConfiguration("t_1"));
+        result.getTables().add(new ShardingTableRuleConfiguration("t_2"));
+        return result;
     }
     
     private ShardingRuleConfiguration 
buildShardingBindingTableRuleConfiguration() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandlerTest.java
index c74be90..aec92b0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingBroadcastTableRulesBackendHandlerTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
@@ -27,6 +26,7 @@ import 
org.apache.shardingsphere.proxy.backend.exception.ShardingBroadcastTableR
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,9 +71,9 @@ public final class 
CreateShardingBroadcastTableRulesBackendHandlerTest {
     @Test
     public void assertExecuteWithoutShardingRuleConfiguration() {
         when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(new 
ArrayList<>());
-        CreateShardingBroadcastTableRulesStatement statement = new 
CreateShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
-        CreateShardingBroadcastTableRulesBackendHandler handler = new 
CreateShardingBroadcastTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        CreateShardingBroadcastTableRulesStatement sqlStatement = new 
CreateShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
+        RDLBackendHandler<CreateShardingBroadcastTableRulesStatement> handler 
= new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
@@ -83,17 +83,17 @@ public final class 
CreateShardingBroadcastTableRulesBackendHandlerTest {
         ShardingRuleConfiguration shardingRuleConfiguration = new 
ShardingRuleConfiguration();
         shardingRuleConfiguration.getBroadcastTables().add("t_1");
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(shardingRuleConfiguration));
-        CreateShardingBroadcastTableRulesStatement statement = new 
CreateShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
-        CreateShardingBroadcastTableRulesBackendHandler handler = new 
CreateShardingBroadcastTableRulesBackendHandler(statement, backendConnection);
-        handler.execute("test", statement);
+        CreateShardingBroadcastTableRulesStatement sqlStatement = new 
CreateShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
+        RDLBackendHandler<CreateShardingBroadcastTableRulesStatement> handler 
= new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        handler.execute("test", sqlStatement);
     }
     
     @Test
     public void assertExecuteWithNotExistShardingBroadcastTableRules() {
         
when(shardingSphereRuleMetaData.getConfigurations()).thenReturn(Collections.singleton(new
 ShardingRuleConfiguration()));
-        CreateShardingBroadcastTableRulesStatement statement = new 
CreateShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
-        CreateShardingBroadcastTableRulesBackendHandler handler = new 
CreateShardingBroadcastTableRulesBackendHandler(statement, backendConnection);
-        ResponseHeader responseHeader = handler.execute("test", statement);
+        CreateShardingBroadcastTableRulesStatement sqlStatement = new 
CreateShardingBroadcastTableRulesStatement(Collections.singleton("t_1"));
+        RDLBackendHandler<CreateShardingBroadcastTableRulesStatement> handler 
= new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
+        ResponseHeader responseHeader = handler.execute("test", sqlStatement);
         assertNotNull(responseHeader);
         assertTrue(responseHeader instanceof UpdateResponseHeader);
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandlerTest.java
index ff91685..75e6155 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateShardingTableRuleBackendHandlerTest.java
@@ -29,6 +29,7 @@ import 
org.apache.shardingsphere.proxy.backend.exception.DuplicateTablesExceptio
 import 
org.apache.shardingsphere.proxy.backend.exception.InvalidShardingAlgorithmsException;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
+import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.distsql.parser.segment.TableRuleSegment;
 import 
org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
@@ -72,7 +73,7 @@ public final class CreateShardingTableRuleBackendHandlerTest {
     @Mock
     private ShardingSphereSchema shardingSphereSchema;
     
-    private final CreateShardingTableRuleBackendHandler handler = new 
CreateShardingTableRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<CreateShardingTableRuleStatement> handler 
= new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
index cd5edcd..e6ec5cc 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
@@ -74,7 +74,7 @@ public final class 
DropDatabaseDiscoveryRuleBackendHandlerTest {
     @Mock
     private ShardingSphereAlgorithmConfiguration 
shardingSphereAlgorithmConfiguration;
     
-    private final DropDatabaseDiscoveryRuleBackendHandler handler = new 
DropDatabaseDiscoveryRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<DropDatabaseDiscoveryRuleStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
DatabaseDiscoveryRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandlerTest.java
index a0df932..32f65a3 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropEncryptRuleBackendHandlerTest.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.DropEncryptRuleStatement;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.DropEncryptRuleStatement;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -74,7 +74,7 @@ public final class DropEncryptRuleBackendHandlerTest {
     @Mock
     private ShardingSphereAlgorithmConfiguration 
shardingSphereAlgorithmConfiguration;
     
-    private final DropEncryptRuleBackendHandler handler = new 
DropEncryptRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<DropEncryptRuleStatement> handler = new 
RDLBackendHandler<>(sqlStatement, backendConnection, 
EncryptRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandlerTest.java
index 7ccef6e..82b578a 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropReadwriteSplittingRuleBackendHandlerTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -30,6 +29,7 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
 import 
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
 import 
org.apache.shardingsphere.readwritesplitting.spi.ReplicaLoadBalanceAlgorithm;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
@@ -75,7 +75,7 @@ public final class 
DropReadwriteSplittingRuleBackendHandlerTest {
     @Mock
     private ShardingSphereAlgorithmConfiguration 
shardingSphereAlgorithmConfiguration;
     
-    private final DropReadwriteSplittingRuleBackendHandler handler = new 
DropReadwriteSplittingRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<DropReadwriteSplittingRuleStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
ReadwriteSplittingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandlerTest.java
index 80d72df..7462304 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBindingTableRulesBackendHandlerTest.java
@@ -67,7 +67,7 @@ public final class 
DropShardingBindingTableRulesBackendHandlerTest {
     @Mock
     private ShardingSphereRuleMetaData ruleMetaData;
     
-    private final DropShardingBindingTableRulesBackendHandler handler = new 
DropShardingBindingTableRulesBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<DropShardingBindingTableRulesStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandlerTest.java
index f8fb17e..3618294 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingBroadcastTableRulesBackendHandlerTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -30,6 +29,7 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResp
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
@@ -67,7 +67,7 @@ public final class 
DropShardingBroadcastTableRulesBackendHandlerTest {
     @Mock
     private ShardingSphereRuleMetaData ruleMetaData;
     
-    private final DropShardingBroadcastTableRulesBackendHandler handler = new 
DropShardingBroadcastTableRulesBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<DropShardingBroadcastTableRulesStatement> 
handler = new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
     
     @Before
     public void setUp() {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandlerTest.java
index e7f2b8b..a43b908 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropShardingTableRuleBackendHandlerTest.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
 import com.google.common.base.Splitter;
-import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -32,6 +31,7 @@ import 
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResp
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropShardingTableRuleStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
@@ -75,7 +75,7 @@ public final class DropShardingTableRuleBackendHandlerTest {
     @Mock
     private ShardingSphereRuleMetaData ruleMetaData;
     
-    private final DropShardingTableRuleBackendHandler handler = new 
DropShardingTableRuleBackendHandler(sqlStatement, backendConnection);
+    private final RDLBackendHandler<DropShardingTableRuleStatement> handler = 
new RDLBackendHandler<>(sqlStatement, backendConnection, 
ShardingRuleConfiguration.class);
     
     @Before
     public void setUp() {

Reply via email to