sharding-jdbc分表分库

本文详细介绍了如何在项目中集成Sharding-JDBC,包括配置不同类型的分库分表策略(如按模分片、按固定值分片),并展示了如何运行、初始化数据和测试接口,包括查询用户数据和清除数据的操作。


在这里插入图片描述
在这里插入图片描述

一、说明

本demo的配置是修改自官方example,用于在本项目的依赖下集成sharding-jdbc来实现分库分表、读写分离等场景的演示

sharding-jdbc详细的配置项说明:https://www.kancloud.cn/zlt2000/microservices-platform/1015741

分库分表思路:https://www.kancloud.cn/mall2000/microservices-platform/1015741

 

二、准备

1、目录结构
在这里插入图片描述
2、配置文件及数据库sql脚本

  • pom.xml文件 (其余依赖根据项目需要引入)
      <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <!-- druid 官方 starter -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>
         <!-- sharding-jdbc分表分库 -->
        <dependency>
            <groupId>io.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
  • sql脚本:
-----------------------------------------sharding-databases
CREATE SCHEMA IF NOT EXISTS demo_ds_0;
CREATE SCHEMA IF NOT EXISTS demo_ds_1;
CREATE TABLE IF NOT EXISTS demo_ds_0.user (
	id BIGINT NOT NULL AUTO_INCREMENT,
	company_id varchar(32) NOT NULL, 
	name varchar(50) NULL, 
	create_time datetime(0) NULL,
    update_time datetime(0) NULL,
	PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS demo_ds_1.user (
	id BIGINT NOT NULL AUTO_INCREMENT, 
	company_id varchar(32) NOT NULL,
	name varchar(50) NULL, 
	create_time datetime(0) NULL,
    update_time datetime(0) NULL,
	PRIMARY KEY (id)
);


-----------------------------------------sharding-databases2
CREATE SCHEMA IF NOT EXISTS demo_ds_alibaba;
CREATE SCHEMA IF NOT EXISTS demo_ds_baidu;
CREATE TABLE IF NOT EXISTS demo_ds_alibaba.user (
	id BIGINT NOT NULL AUTO_INCREMENT, 
	company_id varchar(32) NOT NULL,
	name varchar(50) NULL, 
	create_time datetime(0) NULL,
    update_time datetime(0) NULL,
	PRIMARY KEY (id
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值