add orchestration proxy raw jdbc test case
diff --git a/sharding-proxy-example/proxy-orchestration-example/pom.xml b/sharding-proxy-example/proxy-orchestration-example/pom.xml
index c523e86..3c5d193 100644
--- a/sharding-proxy-example/proxy-orchestration-example/pom.xml
+++ b/sharding-proxy-example/proxy-orchestration-example/pom.xml
@@ -15,6 +15,8 @@
     <packaging>pom</packaging>
 
     <modules>
+        <module>sharding-proxy-orchestration-raw-jdbc-mysql-example</module>
+        <module>sharding-proxy-orchestration-raw-jdbc-postgresql-example</module>
         <module>sharding-proxy-orchestration-spring-namespace-mybatis-mysql-example</module>
         <module>sharding-proxy-orchestration-spring-namespace-mybatis-postgresql-example</module>
         <module>sharding-proxy-orchestration-spring-boot-mybatis-mysql-example</module>
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/pom.xml b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/pom.xml
new file mode 100644
index 0000000..d861918
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>proxy-sharding-example</artifactId>
+        <groupId>org.apache.shardingsphere.example</groupId>
+        <version>4.0.0-RC4-SNAPSHOT</version>
+    </parent>
+    <groupId>org.apache.shardingsphere.example</groupId>
+    <artifactId>sharding-proxy-orchestration-raw-jdbc-mysql-example</artifactId>
+
+    <name>AcceptanceTest::proxy::orchestration::mysql::sharding::raw-jdbc</name>
+    <!-- FIXME change it to the project's website -->
+    <url>http://www.example.com</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.7</maven.compiler.source>
+        <maven.compiler.target>1.7</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere.example</groupId>
+            <artifactId>config-utility</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere.example</groupId>
+            <artifactId>example-api</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere.example</groupId>
+            <artifactId>example-raw-jdbc</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+            <plugins>
+                <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
+                <plugin>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.1.0</version>
+                </plugin>
+                <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>3.0.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.8.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.22.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>3.0.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>2.5.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>2.8.2</version>
+                </plugin>
+                <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
+                <plugin>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.7.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
new file mode 100644
index 0000000..3b39ab5
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
@@ -0,0 +1,24 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaEncryptTest {
+    
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.ENCRYPT);
+        ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertEncrypt(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
new file mode 100644
index 0000000..fb76397
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
@@ -0,0 +1,26 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaMasterSlaveTest {
+    
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.MASTER_SLAVE);
+        ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertMasterSlaves(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
new file mode 100644
index 0000000..b908fd3
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingEncryptTest {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_ENCRYPT);
+        ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingEncrypt(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
new file mode 100644
index 0000000..c65cf9c
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlave {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE);
+        ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingMasterSlaves(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
new file mode 100644
index 0000000..ac644f3
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlaveEncrypt {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE_ENCRYPT);
+        ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingMasterSlaveEncrypt(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
new file mode 100644
index 0000000..0c424cc
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.mysql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingTest {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_DATABASES_AND_TABLES);
+        ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingTableDatabases(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
new file mode 100644
index 0000000..7bdbc48
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-mysql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
@@ -0,0 +1,47 @@
+/*
+ * 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.example.factory;
+
+import org.apache.shardingsphere.example.core.api.DataSourceUtil;
+import org.apache.shardingsphere.example.core.api.DatabaseType;
+import org.apache.shardingsphere.example.type.ShardingType;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class DataSourceFactory {
+    
+    public static DataSource newInstance(final ShardingType shardingType) throws SQLException {
+        switch (shardingType) {
+            case SHARDING_ENCRYPT:
+                return DataSourceUtil.createDataSource("sharding_encrypt", DatabaseType.PROXY_MYSQL);
+            case SHARDING_DATABASES_AND_TABLES:
+                return DataSourceUtil.createDataSource("sharding_db", DatabaseType.PROXY_MYSQL);
+            case MASTER_SLAVE:
+                return DataSourceUtil.createDataSource("master_slave_db", DatabaseType.PROXY_MYSQL);
+            case SHARDING_MASTER_SLAVE:
+                return DataSourceUtil.createDataSource("sharding_master_slave_db", DatabaseType.PROXY_MYSQL);
+            case SHARDING_MASTER_SLAVE_ENCRYPT:
+                return DataSourceUtil.createDataSource("sharding_master_slave_encrypt_db", DatabaseType.PROXY_MYSQL);
+            case ENCRYPT:
+                return DataSourceUtil.createDataSource("encrypt_db", DatabaseType.PROXY_MYSQL);
+            default:
+                throw new UnsupportedOperationException(shardingType.name());
+        }
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/pom.xml b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/pom.xml
new file mode 100644
index 0000000..762a8e8
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>proxy-sharding-example</artifactId>
+        <groupId>org.apache.shardingsphere.example</groupId>
+        <version>4.0.0-RC4-SNAPSHOT</version>
+    </parent>
+    <groupId>org.apache.shardingsphere.example</groupId>
+    <artifactId>sharding-proxy-orchestration-raw-jdbc-postgresql-example</artifactId>
+
+    <name>AcceptanceTest::proxy::orchestration::postgresql::sharding::raw-jdbc</name>
+    <!-- FIXME change it to the project's website -->
+    <url>http://www.example.com</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.7</maven.compiler.source>
+        <maven.compiler.target>1.7</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere.example</groupId>
+            <artifactId>config-utility</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere.example</groupId>
+            <artifactId>example-api</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere.example</groupId>
+            <artifactId>example-raw-jdbc</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+            <plugins>
+                <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
+                <plugin>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.1.0</version>
+                </plugin>
+                <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>3.0.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.8.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.22.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>3.0.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>2.5.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>2.8.2</version>
+                </plugin>
+                <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
+                <plugin>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.7.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
new file mode 100644
index 0000000..3f309cf
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaEncryptTest.java
@@ -0,0 +1,24 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaEncryptTest {
+    
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.ENCRYPT);
+        ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertEncrypt(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
new file mode 100644
index 0000000..2292636
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaMasterSlaveTest.java
@@ -0,0 +1,26 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaMasterSlaveTest {
+    
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.MASTER_SLAVE);
+        ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertMasterSlaves(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
new file mode 100644
index 0000000..83ffa23
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingEncryptTest.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingEncryptTest {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_ENCRYPT);
+        ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingEncrypt(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
new file mode 100644
index 0000000..1fab281
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlave.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlave {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE);
+        ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingMasterSlaves(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
new file mode 100644
index 0000000..9330b8f
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingMasterSlaveEncrypt.java
@@ -0,0 +1,23 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.UserRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.UserServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingMasterSlaveEncrypt {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_MASTER_SLAVE_ENCRYPT);
+        ExampleService exampleService = new UserServiceImpl(new UserRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertShardingMasterSlaveEncrypt(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
new file mode 100644
index 0000000..43d9dfe
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/RawJDBCJavaShardingTest.java
@@ -0,0 +1,25 @@
+package org.apache.shardingsphere.example;
+
+import org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate;
+import org.apache.shardingsphere.example.core.api.service.ExampleService;
+import org.apache.shardingsphere.example.core.jdbc.common.RawJdbcAssertUtils;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.AddressRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderItemRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.repository.postgresql.OrderRepositoryImpl;
+import org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl;
+import org.apache.shardingsphere.example.factory.DataSourceFactory;
+import org.apache.shardingsphere.example.type.ShardingType;
+import org.junit.Test;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class RawJDBCJavaShardingTest {
+    @Test
+    public void assertCommonService() throws SQLException {
+        DataSource dataSource = DataSourceFactory.newInstance(ShardingType.SHARDING_DATABASES_AND_TABLES);
+        ExampleService exampleService = new OrderServiceImpl(new OrderRepositoryImpl(dataSource), new OrderItemRepositoryImpl(dataSource), new AddressRepositoryImpl(dataSource));
+        ExampleExecuteTemplate.run(exampleService);
+        RawJdbcAssertUtils.assertPgTempShardingTableDatabases(exampleService);
+    }
+}
diff --git a/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
new file mode 100644
index 0000000..12cbf4c
--- /dev/null
+++ b/sharding-proxy-example/proxy-orchestration-example/sharding-proxy-orchestration-raw-jdbc-postgresql-example/src/test/java/org/apache/shardingsphere/example/factory/DataSourceFactory.java
@@ -0,0 +1,47 @@
+/*
+ * 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.example.factory;
+
+import org.apache.shardingsphere.example.core.api.DataSourceUtil;
+import org.apache.shardingsphere.example.core.api.DatabaseType;
+import org.apache.shardingsphere.example.type.ShardingType;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+public class DataSourceFactory {
+    
+    public static DataSource newInstance(final ShardingType shardingType) throws SQLException {
+        switch (shardingType) {
+            case SHARDING_ENCRYPT:
+                return DataSourceUtil.createDataSource("sharding_encrypt", DatabaseType.PROXY_POSTGRESQL);
+            case SHARDING_DATABASES_AND_TABLES:
+                return DataSourceUtil.createDataSource("sharding_db", DatabaseType.PROXY_POSTGRESQL);
+            case MASTER_SLAVE:
+                return DataSourceUtil.createDataSource("master_slave_db", DatabaseType.PROXY_POSTGRESQL);
+            case SHARDING_MASTER_SLAVE:
+                return DataSourceUtil.createDataSource("sharding_master_slave_db", DatabaseType.PROXY_POSTGRESQL);
+            case SHARDING_MASTER_SLAVE_ENCRYPT:
+                return DataSourceUtil.createDataSource("sharding_master_slave_encrypt_db", DatabaseType.PROXY_POSTGRESQL);
+            case ENCRYPT:
+                return DataSourceUtil.createDataSource("encrypt_db", DatabaseType.PROXY_POSTGRESQL);
+            default:
+                throw new UnsupportedOperationException(shardingType.name());
+        }
+    }
+}