1 实现垂直分库,专库专表

实现目标,用户查询用户信息的时候,只操作user_db中t_user表

2 创建数据库

CREATE SCHEMA `userdb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;

3 创建数据表

CREATE TABLE `userdb`.`t_user` (`user_id` BIGINT NOT NULL,`user_name` VARCHAR(45) NOT NULL,`u_status` VARCHAR(45) NOT NULL,PRIMARY KEY (`user_id`));

4 创建po

package com.ccb.sharding.po;import com.baomidou.mybatisplus.annotation.TableName;@TableName("t_user")
public class User {private Long userId;private String userName;private String uStatus;public Long getUserId() {return userId;}public void setUserId(Long userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getuStatus() {return uStatus;}public void setuStatus(String uStatus) {this.uStatus = uStatus;}@Overridepublic String toString() {return "User{" +"userId=" + userId +", userName='" + userName + '\'' +", uStatus='" + uStatus + '\'' +'}';}
}

5 创建 UserMapper 接口

package com.ccb.sharding.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ccb.sharding.po.User;
import org.springframework.stereotype.Repository;@Repository
public interface UserMapper extends BaseMapper<User> {}

6 创建application.properties配置分片策略 专库专表

# sharding-JDBC分片策略(垂直分库)
# 配置数据源,给数据源命名
# 垂直分库,配置数据源
spring.shardingsphere.datasource.names=ds0# 配置数据源具体内容,连接池、驱动、地址、用户名和密码
spring.shardingsphere.datasource.ds0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.ds0.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.ds0.url=jdbc:mysql://localhost:3306/userdb?serverTimezone=GMT%2B8
spring.shardingsphere.datasource.ds0.username=root
spring.shardingsphere.datasource.ds0.password=chengwen# 一个实体类对应两张表,覆盖
spring.main.allow-bean-definition-overriding=true# 配置user_db数据库里面t_user 专库专表
spring.shardingsphere.sharding.tables.t_user.actual-data-nodes=ds$->{0}.t_user# 配置user_db数据库里面 t_user 表里面主键 user_id 生成策略 SNOWFLAKE 雪花算法
spring.shardingsphere.sharding.tables.t_user.key-generator.column=user_id
spring.shardingsphere.sharding.tables.t_user.key-generator.type=SNOWFLAKE# 指定表分片策略 约定user_id的值添加到t_user表
spring.shardingsphere.sharding.tables.t_user.table-strategy.inline.sharding-column=user_id
spring.shardingsphere.sharding.tables.t_user.table-strategy.inline.algorithm-expression=t_user# 打印sql输出日志
spring.shardingsphere.props.sql.show=true

7 Test

package com.ccb.sharding;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ccb.sharding.mapper.UserMapper;
import com.ccb.sharding.po.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class ShardingApplicationTests {@AutowiredCourseMapper courseMapper;@AutowiredUserMapper userMapper;// ================= 测试水平分表 ======================@Testpublic void addUser() {User user = new User();user.setUserName("Tom");user.setuStatus("A");userMapper.insert(user);}@Testpublic void getUser(){QueryWrapper queryWrapper = new QueryWrapper();queryWrapper.eq("user_id",482828647158251521L);User cuser = userMapper.selectOne(queryWrapper);System.out.println(cuser);}
}

8 Test result

专库专表 新增
专库专表 查询

4、ShardingSphere 之 Sharding-JDBC 实现垂直分库相关推荐

  1. ShardingSphere(四) 垂直分库配置搭建,实现写入读取

    概述:垂直分库即转库专用,不同的数据库中存放不同的表信息.比如学生和课程信息,我们将课程表存放与一个数据库中,学生信息存储于另一个库中,本章将介绍如何通过配置Sharding jdbc实现垂直分库操作 ...

  2. SpringBoot + Sharding JDBC,一文搞定分库分表、读写分离

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 30 分钟. 来自:blog.csdn.net/qq_40378034/article/details/115264837 S ...

  3. SpringBoot + Sharding JDBC 读写分离、分库分表

    Sharding-JDBC 最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为 ShardingSphere,20 ...

  4. Spring boot + Sharding JDBC 分库分表 及 分布式事务处理

    Sharding JDBC 基础概念 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC.Proxy 和 Sidecar(规划中)这 3 款既能够 ...

  5. Sharding-Sphere,Sharding-JDBC_分库分表(垂直分库_垂直分表)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记003

    首先我们看看分库分表有几种方式: 然后我们看, 有垂直分库,垂直分表 有水平分库,水平分表. 之前我们做mycat的时候,说过有垂直分库,水平分表, 垂直分表的情况好像是没有说. 要说垂直分表,我们先 ...

  6. Sharding jdbc

    一.Sharding Sphere简介 定义:Apache ShardingSphere 是一款开源分布式数据库生态项目,由 JDBC.Proxy 和 Sidecar(规划中) 3 款产品组成.其核心 ...

  7. Sharding JDBC(四) 分片策略一:标准分片策略StandardShardingStrategy

    目录 一.标准分片策略StandardShardingStrategy 二.StandardShardingStrategy配置实现 分库分表最核心的两点SQL 路由  . SQL 改写 applic ...

  8. SSM项目引入sharding JDBC进行分表

    SSM项目引入sharding JDBC进行分表 注意点: 本次集成sharing-jdbc 4.1.1,由于各个版本差别比较大,配置方式差别也特别大,请根据官方文档进行配置! 官方配置路径:http ...

  9. Sharding JDBC分片和读写分离详解

    目录 Sharding Sphere简介 开始使用Sharding JDBC 数据分片 简单示例 Spring Boot示例 代码分析 属性分析 绑定表和广播表 真实表 绑定表 广播表 Shardin ...

最新文章

  1. Python再夺冠,上古语言COBOL大流行,IEEE Spectrum 2020年度编程语言排行榜出炉!...
  2. 易宝典——玩转O365中的EXO服务 之四十 创建就地电子数据展示搜索
  3. python 自动化微信小程序_appium+python 微信小程序的自动化
  4. Vue scoped CSS 与深度作用选择器 /deep/
  5. mysql开创_MySQL创始人打造MariaDB 全面兼容MySQL 5.1
  6. Keras + Windows +Anaconda2-4.2.0 深度学习框架快速搭建
  7. 十二、深入Java的循环语句
  8. 淘宝API调用 申请 获取session key
  9. 妄想集合(牛客练习赛90)
  10. 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示
  11. LeetCode(620)——有趣的电影(MySQL)
  12. 动态设置样式 calc计算
  13. Qt编程环境下学习《OpenGL编程指南(原书第九版)》(一)
  14. 关于ucgui3.98(显示部分)移植
  15. hadoop put命令的格式_Hadoop Shell命令
  16. 【Leetcode】882. Reachable Nodes In Subdivided Graph 882. 细分图中的可到达结点
  17. 怎样刻录系统启动光盘
  18. 百度大脑人脸离线识别SDK Windows版
  19. React: Create-React-App
  20. spss为什么有python插件_为什么数据分析会用 Python

热门文章

  1. matlab中的imsod,Matlab eval用法
  2. finecms控制器与html,使用@ HTML.Action与参数,以C#控制器
  3. matlab中如何随机排列,科学网—对图片进行拆分并随机排列的快速算法(MATLAB) - 徐磊的博文...
  4. python 获取首字母_python获取汉字首字母-Go语言中文社区
  5. 中呜机器人编程视频教程_清华北大泄露Python436集视频教程,这就是你现在需要的...
  6. oracle虚拟机 centos6.5,虚拟机oracle virtualbox 上安装centos6.5 网络设置
  7. python中单引号和双引号的区别_python中单引号,双引号,多引号区别
  8. 创建商品类java_SSH框架网上商城项目第9战之添加和更新商品类别功能实现
  9. 鸿蒙系统手机用户体验,鸿蒙系统真的来了!用户体验流畅度远超安卓,任正非扳回一城!...
  10. flavor android build,android BuildType和BuildFlavor