springboot如何使用yml文件方式配置shardingsphere
更新時間:2023年09月18日 14:25:09 作者:紫荊-往往
這篇文章主要介紹了springboot如何使用yml文件方式配置shardingsphere問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
1、創(chuàng)建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: true3、創(chuàng)建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測試



上圖所指示,兩個分片表插入前是無數(shù)據(jù)的,執(zhí)行測試用例,
日志為:

查看兩個分片表數(shù)據(jù),
結果如下所示:


總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
Springboot 整合 Dubbo/ZooKeeper 實現(xiàn) SOA 案例解析
這篇文章主要介紹了Springboot 整合 Dubbo/ZooKeeper 詳解 SOA 案例,需要的朋友可以參考下2017-11-11
Java程序的初始化順序,static{}靜態(tài)代碼塊和實例語句塊的使用方式
這篇文章主要介紹了Java程序的初始化順序,static{}靜態(tài)代碼塊和實例語句塊的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringAOP實現(xiàn)日志收集管理功能(步驟詳解)
這篇文章主要介紹了SpringAOP實現(xiàn)日志收集管理功能,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03

