zoukankan      html  css  js  c++  java
  • ShardingJdbc:垂直切分

    接着上一篇:https://www.cnblogs.com/wwjj4811/p/14597828.html

    环境搭建

    按照业务把单个数据库进行划分,专库专表。

    创建user_db数据库,数据库中新增t_user表

    CREATE TABLE `t_user`  (
      `user_id` bigint(20) NOT NULL,
      `username` varchar(255) ,
      `ustatus` varchar(50) ,
      PRIMARY KEY (`user_id`) USING BTREE
    ) ;
    

    image-20210330174904453

    实体类:

    @Data
    @TableName("t_user")
    public class User {
        @TableId
        private Long userId;
        private String username;
        private String ustatus;
    }
    

    Mapper接口:

    public interface UserMapper extends BaseMapper<User> {
    }
    

    配置垂直分库策略

    修改application.properties(下面只展示关于垂直分库,其余配置省略)

    #数据源名称
    spring.shardingsphere.datasource.names=m1,m2,m0
    
    #------------------------------垂直拆分------------------------------------#
    #数据源m0配置
    spring.shardingsphere.datasource.m0.type=com.alibaba.druid.pool.DruidDataSource
    spring.shardingsphere.datasource.m0.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.shardingsphere.datasource.m0.url=jdbc:mysql://localhost:3306/user_db?serverTimezone=GMT%2B8
    spring.shardingsphere.datasource.m0.username=root
    spring.shardingsphere.datasource.m0.password=1234
    
    #指定t_user表分布情况
    spring.shardingsphere.sharding.tables.t_user.actual-data-nodes=m$->{0}.t_user
    
    #指定course表里面主键生成策略
    spring.shardingsphere.sharding.tables.t_user.key-generator.column=user_id
    spring.shardingsphere.sharding.tables.t_user.key-generator.type=SNOWFLAKE
    
    #指定表分片策略 约定cid值偶数添加到course_1表,奇数添加到course_2表
    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
    #-------------------------------------------------------------------------#
    

    测试

        @Resource
        UserMapper userMapper;
    
        @Test
        void userAdd(){
            User user = new User();
            user.setUsername("张三");
            user.setUstatus("1");
            userMapper.insert(user);
        }
    
        @Test
        void userFind(){
            userMapper.selectOne(new QueryWrapper<User>().eq("ustatus","1"));
        }
    

    新增:

    image-20210330175551544

    查询:

    image-20210330175625992

  • 相关阅读:
    【Office Web Apps】在 SharePoint 中使用 Office Web Apps
    css轮廓
    css定位
    css盒子模型 css3盒子相关样式
    css常用操作
    css3选择器
    强制换行和禁止换行
    text-transform 字母的大小写
    css hack
    JavaScript基本语法
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14598033.html
Copyright © 2011-2022 走看看