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

  • 相关阅读:
    事件-(DOM标准事件模型)
    BOM-01 (BOM的对象)
    DOM-04 (DOM常用对象)
    DOM-03 (修改2,添加删除)
    DOM-02 (查找2,修改1)
    DOM-01 (DOM基础,DOM树,查找元素1)
    boot-02 (组件<(水平/胶囊/选项卡)导航,折叠,卡片,手风琴,折叠导航栏,媒体对象,焦点轮播图,巨幕,徽章>)
    boot-01 (栅格布局/表单样式/组件1)
    AI deeplab
    AI 强化学习
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14598033.html
Copyright © 2011-2022 走看看