当前位置: 首页 > news >正文

(一)springboot2.6.13+mybatis-plus3.5.3.1+shardingsphere4.0.0-RC2

1,POM配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>demo</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><!-- 由于Mybatis Plus使用了druid作为默认的数据源,分库分表使用的是HikariDataSource作为数据源管理,所以需要排除druid的starter --><exclusions><exclusion><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId></exclusion></exclusions></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 分库分表,先去掉druid数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.18</version></dependency><!--        &lt;!&ndash;HikariCP 高性能的JDBC连接池&ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>com.zaxxer</groupId>-->
<!--            <artifactId>HikariCP</artifactId>-->
<!--            <version>5.0.0</version>-->
<!--        </dependency>--><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC2</version></dependency><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-namespace</artifactId><version>4.0.0-RC2</version></dependency>
<!--        <dependency>-->
<!--            <groupId>org.apache.shardingsphere</groupId>-->
<!--            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>-->
<!--            <version>4.1.1</version>-->
<!--        </dependency>--><!-- Mybatis与JacksonJson时间转换异常处理 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-typehandlers-jsr310</artifactId><version>1.0.1</version></dependency><!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.5.3.1</version></dependency><!-- mybatis-plus 依赖 --><!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><!-- mybatis-plus 代码生成器依赖 --><!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2,YML配置

application.yml

server:port: 8081
mybatis-plus:global-config:db-config:table-prefix: tbl_mapper-locations: classpath:mapper/*.xmlconfiguration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpl
spring:profiles:active: sharding

application-sharding.yml

# 数据源配置 spring.shardingsphere.datasource.
spring:shardingsphere:enabled: trueprops:sql:show: truedatasource:names: ftdb0,ftdb1# 主数据库配置ftdb0:# 数据源类名,这里使用的是阿里巴巴的Druid连接池type: com.alibaba.druid.pool.DruidDataSource# JDBC驱动类名driver-class-name: com.mysql.cj.jdbc.Driver# 数据库连接URL,包括数据库地址、端口、数据库名以及连接参数url: jdbc:mysql://10.1.179.245:3306/ftdb0?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&autoReconnect=true&serverTimezone=GMT%2B8# 数据库登录用户名username: root# 数据库登录密码password: Loit@0487ftdb1:# 数据源类名,这里使用的是阿里巴巴的Druid连接池type: com.alibaba.druid.pool.DruidDataSource# JDBC驱动类名driver-class-name: com.mysql.cj.jdbc.Driver# 数据库连接URL,包括数据库地址、端口、数据库名以及连接参数url: jdbc:mysql://10.1.179.245:3306/ftdb1?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&autoReconnect=true&serverTimezone=GMT%2B8# 数据库登录用户名username: root# 数据库登录密码password: Loit@0487sharding:# 定义需要分片的表及其分片策略tables:tbl_book:# 定义实际的数据节点,包括数据源名称和表名# 个人只是想分表就这样配置的,分库的话可以配置为:ftdb$->{0..1}.tbl_book_$->{0..2}actual-data-nodes: ftdb0.tbl_book_$->{0..2}# 定义表的分片策略table-strategy:inline:# 分片键和分片算法名称sharding-column: idalgorithm-expression: tbl_book_$->{id % 3}# 定义键生成策略key-generator:column: id  # 指定键生成策略的列名type: SNOWFLAKE  # 指定使用的键生成器名称 这里使用的雪花算法

3,启动类

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

4, 测试

DemoApplicationTests
@SpringBootTest
class DemoApplicationTests {@Autowiredprivate BookDao bookDao;@Testvoid testGetAll() {System.out.println(bookDao.selectList(null));}@Testvoid save() {Book book = new Book();book.setName("语文");book.setType("1");book.setDescription("语文课本");bookDao.insert(book);}}

5,源码

000000/shardingsphere

常见报错

Data sources cannot be empty.

原因多半就是yml配置文件配置有问题,别瞎搞什么启动类屏蔽自动转载类(@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, SpringBootConfiguration.class}))


http://www.mrgr.cn/news/24584.html

相关文章:

  • 如何通过海外云手机提升运营效率
  • 漏洞挖掘 | 产出如此简单?BigF5内网ip泄漏
  • k8s环境配置
  • Leetcode 701-二叉搜索树中的插入操作
  • 287. 寻找重复数(stl法)
  • 即插即用篇 | YOLOv8 引入并行的分块注意力 | 北京大学 2024 | 微小目标
  • QT设置闹钟超时播报
  • 1.简述语言建模LM、统计语言建模SLM、神经语言模型NLM、预训练语言模型PLM、大语言模型LLM
  • 搜索功能技术方案
  • Linux——高流量 高并发(访问场景) 高可用(架构要求)
  • 源码编译 openblas for windows on arm
  • 串口接收不到数据之电阻虚焊bug分析思路
  • 微深节能 天车无人抓渣系统 格雷母线定位系统
  • C语言学习
  • React项目的开发前准备 以及 JSX 的基本使用
  • 非关系型数据库Redis
  • rocky8安装docker步骤
  • HCIE证书泛滥,曾经的“顶流”现在怎么了?
  • 【CAPL实战】解决调用LIN函数不生效问题
  • java实现策略模式