最近Shardingsphere在Apache Software Foundation 簡稱ASF 畢業成為Apache頂級項目,也是目前ASF收個分布式數據庫中間件項目,未來可期啊,今天我們就搭建一下springboot整合Shardingsphere4.0版本。
依賴:
- jdk1.8
- maven3.6.3
- mybatis plus
- mysql8.0
- Shardingsphere 4.0
數據庫的結構:
--|
|- ds0
| |- t_order0
| |- t_order1
|
|- ds1
|- t_order0
|- t_order1
創建數據庫
數據庫ds0
CREATE DATABASE IF NOT EXISTS `ds0` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */; USE `ds0`; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_order0 -- ---------------------------- DROP TABLE IF EXISTS `t_order0`; CREATE TABLE `t_order0` ( `order_id` bigint(0) NOT NULL COMMENT '訂單號(主鍵)', `order_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '訂單名稱', `order_status` int(0) NULL DEFAULT NULL COMMENT '訂單狀態', `user_id` bigint(0) NOT NULL COMMENT '用戶id', PRIMARY KEY (`order_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for t_order1 -- ---------------------------- DROP TABLE IF EXISTS `t_order1`; CREATE TABLE `t_order1` ( `order_id` bigint(0) NOT NULL COMMENT '訂單號(主鍵)', `order_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '訂單名稱', `order_status` int(0) NULL DEFAULT NULL COMMENT '訂單狀態', `user_id` bigint(0) NOT NULL COMMENT '用戶id', PRIMARY KEY (`order_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
數據庫ds1
CREATE DATABASE IF NOT EXISTS `ds1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */; USE `ds1`; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_order0 -- ---------------------------- DROP TABLE IF EXISTS `t_order0`; CREATE TABLE `t_order0` ( `order_id` bigint(0) NOT NULL COMMENT '訂單號(主鍵)', `order_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '訂單名稱', `order_status` int(0) NULL DEFAULT NULL COMMENT '訂單狀態', `user_id` bigint(0) NOT NULL COMMENT '用戶id', PRIMARY KEY (`order_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for t_order1 -- ---------------------------- DROP TABLE IF EXISTS `t_order1`; CREATE TABLE `t_order1` ( `order_id` bigint(0) NOT NULL COMMENT '訂單號(主鍵)', `order_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '訂單名稱', `order_status` int(0) NULL DEFAULT NULL COMMENT '訂單狀態', `user_id` bigint(0) NOT NULL COMMENT '用戶id', PRIMARY KEY (`order_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
pom.xml
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.winterchen</groupId> <artifactId>shardingsphere-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>shardingsphere-demo</name> <description>shardingsphere demo</description> <properties> <java.version>1.8</java.version> <sharding-sphere.version>4.0.1</sharding-sphere.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mysql,根據自己數據庫版本進行相關調整,不然會報錯--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> <scope>runtime</scope> </dependency> <!--Mybatis-Plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version> </dependency> <!-- for spring boot --> <dependency> <groupId>org.apache.shardingsphere</groupId>