• springboot + mybatis-plus + sharding-jdbc 实现单库分表


    一.先知道 sharding-jdbc 是个什么 可以再官网看一下: https://shardingsphere.apache.org/index_zh.html

    二.引入maven 依赖, 注意每个版本的配置不一样,我这里是4.X 其他版本的配置可以去官网查看

    <dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>4.1.1</version>
    </dependency>

    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.3</version>
    </dependency>

    三. 如果出现 sqlTemplate 等异常 说明项目里面引入了 druid-spring-boot-starter 依赖 和 原生的 druid 冲突了 这里需要使用原生的或者可以把 依赖换成这个

    <dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>4.0.0-RC1</version>
    </dependency>

    四. yml 配置 分表配置,这里只是简单的分表

    spring:
    shardingsphere:
    datasource:
    names: ds01
    ds01: # 数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.254.106:5166/evaluate_center?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: admin
    password: admindgg
    sharding:
    tables: # 分表配置
    test:
    actualDataNodes: ds01.test${0..1}
    # 分片键(分表字段)这里通过id 分表,具体字段可以自己定义,分表规则
    table-strategy:
    inline:
    shardingColumn: id
    algorithm-expression: test${id % 2}

    keyGenerator:
    type: SNOWFLAKE
    column: id
    props:
    sql:
    # 打印SQL
    show: true


    五. 创建数据库表 test0, test1

    六. 然后创建对应的实体,注意这里的@TableName表名不要给后缀比如test0,test1,直接写test,不然只会插入指定的表

    七. 创建对应的controller,service,mapper,这里就不赘述这个了

    八. 调用测试,调用添加接口可以看到数据插入执行的sql,并且查看数据库都有数据,可以看出id 为偶数的在test0,id 为奇数的在test1

    test0

    test1

    九. 测试查询: 通过分表id 查询,和某个字段分页查询

    通过id 查询


    分页查询,如果使用mybatis-plus 分页记得加上分页插件



     




  • 相关阅读:
    手机摇一摇代码
    ftp
    .net 设置导航的当前状态
    app 尺寸
    繁简体 互转 js
    静态页分页效果
    判断浏览器
    python列表,元组,字典和字符串之间的相互转换
    uliweb框架数据库操作
    uliweb的模版
  • 原文地址:https://www.cnblogs.com/bt2882/p/15138369.html
Copyright © 2020-2023  润新知