springboot如何使用yml文件方式配置shardingsphere

 更新时间:2023年09月18日 14:25:09   作者:紫荆-往往  
这篇文章主要介绍了springboot如何使用yml文件方式配置shardingsphere问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1、创建maven项目

引入依赖包

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <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.1.22</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
    </dependencies>

2、配置yml文件

spring:
  shardingsphere:
    datasource:
      names: m1
      m1:
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://ip:3306/test?serverTimezone=GMT%2B8
        driver-class-name: com.mysql.jdbc.Driver
        username: 用户名
        password: 密码
#      m2:
#        type: com.alibaba.druid.pool.DruidDataSource
#        url: jdbc:mysql://10.0.5.118:3306/test2?serverTimezone=GMT%2B8
#        driver-class-name: com.mysql.jdbc.Driver
#        username: root
#        password: dcg123456
    sharding:
      tables:
        course:
          actual-data-nodes: m1.course_$->{1..2}
          key-generator:
            column: cid
            type: SNOWFLAKE
#          databaseStrategy: #分库策略
#            inline:
#              shardingColumn: cid
#              algorithmExpression: m$->{cid % 2 +1}
#分表策略
          table-strategy:
            inline:
              sharding-column: cid
              algorithm-expression: course_$->{cid%2+1}
 #打印sql
    props:
      sql:
        show: true

3、创建course实体类及dao层代码

package com.lifwe.shardingsphere.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
 * @author lifwe
 * @version 1.0
 * @ClassName :Course
 * @Description :
 * @date 2021/3/5 20:27
 */
@Data
@NoArgsConstructor
@ToString
public class Course {
    private Long cid;
    private String cname;
    private Long userId;
    private String cstatus;
}
package com.lifwe.shardingsphere.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lifwe.shardingsphere.entity.Course;
import org.apache.ibatis.annotations.Mapper;
/**
 * @author lifwe
 * @version 1.0
 * @ClassName :CourseDao
 * @Description :
 * @date 2021/3/5 20:32
 */
@Mapper
public interface CourseDao extends BaseMapper<Course> {
}

4、进行junit测试

上图所指示,两个分片表插入前是无数据的,执行测试用例,

日志为:

查看两个分片表数据,

结果如下所示:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java利用poi读取Excel详解实现

    Java利用poi读取Excel详解实现

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为简洁版的模糊实现
    2022-07-07
  • SpringBoot jackson 精度处理问题解决

    SpringBoot jackson 精度处理问题解决

    由于JavaScript处理的最大数值限制,较大的雪花ID在JS中容易溢出,为解决此问题,可在SpringMVC或SpringBoot中使用@RequestBody注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • 浅析Java模板方法的一种使用方式

    浅析Java模板方法的一种使用方式

    模板方法说白了就是将一段代码模板化,将通用的代码段抽取出来,并提供一些自定义的接口去定制的特定位置的某些业务功能。本文主要来和大家聊聊它的一种使用方式,希望对大家有所帮助
    2023-02-02
  • Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析

    Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析

    这篇文章主要介绍了Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例,需要的朋友可以参考下
    2017-11-11
  • SpringBoot中RabbitMQ集群的搭建详解

    SpringBoot中RabbitMQ集群的搭建详解

    单个的 RabbitMQ 肯定无法实现高可用,要想高可用,还得上集群。这篇文章主要介绍了SpringBoot中RabbitMQ集群的两种模式的搭建:普通集群搭建和镜像集群搭建,需要的朋友可以参考一下
    2021-12-12
  • JDK源码中一些实用的“小技巧”总结

    JDK源码中一些实用的“小技巧”总结

    这篇文章主要给大家总结介绍了关于JDK源码中一些实用的“小技巧”,文中通过示例代码介绍的非常详细,对大家学习或者使用jdk源码具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • Java程序的初始化顺序,static{}静态代码块和实例语句块的使用方式

    Java程序的初始化顺序,static{}静态代码块和实例语句块的使用方式

    这篇文章主要介绍了Java程序的初始化顺序,static{}静态代码块和实例语句块的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • JVM内存参数配置详解

    JVM内存参数配置详解

    本文主要介绍了JVM内存参数配置详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • SpringAOP实现日志收集管理功能(步骤详解)

    SpringAOP实现日志收集管理功能(步骤详解)

    这篇文章主要介绍了SpringAOP实现日志收集管理功能,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 三分钟快速掌握Java中枚举(enum)

    三分钟快速掌握Java中枚举(enum)

    enum的全称为enumeration, 是 JDK 1.5中引入的新特性,存放在 java.lang包中。下面这篇文章是我在使用enum过程中的一些经验和总结,分享出来方便大家快速的掌握Java中枚举(enum),有需要的朋友们下面跟着小编来一起看看吧。
    2016-12-12

最新评论