4、ShardingSphere 之 Sharding-JDBC 实现垂直分库
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 实现垂直分库相关推荐
- ShardingSphere(四) 垂直分库配置搭建,实现写入读取
概述:垂直分库即转库专用,不同的数据库中存放不同的表信息.比如学生和课程信息,我们将课程表存放与一个数据库中,学生信息存储于另一个库中,本章将介绍如何通过配置Sharding jdbc实现垂直分库操作 ...
- SpringBoot + Sharding JDBC,一文搞定分库分表、读写分离
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 30 分钟. 来自:blog.csdn.net/qq_40378034/article/details/115264837 S ...
- SpringBoot + Sharding JDBC 读写分离、分库分表
Sharding-JDBC 最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为 ShardingSphere,20 ...
- Spring boot + Sharding JDBC 分库分表 及 分布式事务处理
Sharding JDBC 基础概念 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC.Proxy 和 Sidecar(规划中)这 3 款既能够 ...
- Sharding-Sphere,Sharding-JDBC_分库分表(垂直分库_垂直分表)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记003
首先我们看看分库分表有几种方式: 然后我们看, 有垂直分库,垂直分表 有水平分库,水平分表. 之前我们做mycat的时候,说过有垂直分库,水平分表, 垂直分表的情况好像是没有说. 要说垂直分表,我们先 ...
- Sharding jdbc
一.Sharding Sphere简介 定义:Apache ShardingSphere 是一款开源分布式数据库生态项目,由 JDBC.Proxy 和 Sidecar(规划中) 3 款产品组成.其核心 ...
- Sharding JDBC(四) 分片策略一:标准分片策略StandardShardingStrategy
目录 一.标准分片策略StandardShardingStrategy 二.StandardShardingStrategy配置实现 分库分表最核心的两点SQL 路由 . SQL 改写 applic ...
- SSM项目引入sharding JDBC进行分表
SSM项目引入sharding JDBC进行分表 注意点: 本次集成sharing-jdbc 4.1.1,由于各个版本差别比较大,配置方式差别也特别大,请根据官方文档进行配置! 官方配置路径:http ...
- Sharding JDBC分片和读写分离详解
目录 Sharding Sphere简介 开始使用Sharding JDBC 数据分片 简单示例 Spring Boot示例 代码分析 属性分析 绑定表和广播表 真实表 绑定表 广播表 Shardin ...
最新文章
- Python再夺冠,上古语言COBOL大流行,IEEE Spectrum 2020年度编程语言排行榜出炉!...
- 易宝典——玩转O365中的EXO服务 之四十 创建就地电子数据展示搜索
- python 自动化微信小程序_appium+python 微信小程序的自动化
- Vue scoped CSS 与深度作用选择器 /deep/
- mysql开创_MySQL创始人打造MariaDB 全面兼容MySQL 5.1
- Keras + Windows +Anaconda2-4.2.0 深度学习框架快速搭建
- 十二、深入Java的循环语句
- 淘宝API调用 申请 获取session key
- 妄想集合(牛客练习赛90)
- 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示
- LeetCode(620)——有趣的电影(MySQL)
- 动态设置样式 calc计算
- Qt编程环境下学习《OpenGL编程指南(原书第九版)》(一)
- 关于ucgui3.98(显示部分)移植
- hadoop put命令的格式_Hadoop Shell命令
- 【Leetcode】882. Reachable Nodes In Subdivided Graph 882. 细分图中的可到达结点
- 怎样刻录系统启动光盘
- 百度大脑人脸离线识别SDK Windows版
- React: Create-React-App
- spss为什么有python插件_为什么数据分析会用 Python
热门文章
- matlab中的imsod,Matlab eval用法
- finecms控制器与html,使用@ HTML.Action与参数,以C#控制器
- matlab中如何随机排列,科学网—对图片进行拆分并随机排列的快速算法(MATLAB) - 徐磊的博文...
- python 获取首字母_python获取汉字首字母-Go语言中文社区
- 中呜机器人编程视频教程_清华北大泄露Python436集视频教程,这就是你现在需要的...
- oracle虚拟机 centos6.5,虚拟机oracle virtualbox 上安装centos6.5 网络设置
- python中单引号和双引号的区别_python中单引号,双引号,多引号区别
- 创建商品类java_SSH框架网上商城项目第9战之添加和更新商品类别功能实现
- 鸿蒙系统手机用户体验,鸿蒙系统真的来了!用户体验流畅度远超安卓,任正非扳回一城!...
- flavor android build,android BuildType和BuildFlavor