ShardingSphere-JDBC学习笔记

ShardingSphere-JDBC

官网:https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/
学习视频:https://edu.aliyun.com/course/2059?spm=5176.10731542.0.0.195c7bc6NvkSBz
视频链接内容:阿里云大学-数据库中间件ShardingSphere详解
本学习笔记暂时没有读写分离,因为还没操作,收藏即我会了,哈哈哈


  1. 简介

    轻量级 Java 框架,介于 JDBC层 ,可视为增强版的 JDBC 驱动。提供了分库分表、读写分离等功能。
    在这里插入图片描述

    适用任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC。

    支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP 等。

    支持任意实现 JDBC 规范的数据库,目前支持 MySQL,Oracle,SQLServer,PostgreSQL 以及任何遵循 SQL92 标准的数据库。


  2. 功能

    1. 分库分表

      1. 水平切分

        水平分表:同一数据库,结构相同的两张表,根据自定义规则,解析sql语句,分别存入对应的表。
        水平分库:不同数据库,结构相同的两张表,根据自定义规则,解析sql语句,分别存入对应的库和表。

      2. 垂直切分

        垂直分表:同一数据库,结构不同的两张表,根据自定义规则,解析sql语句,分别存入对应的表。
        垂直分库:不同数据库,结构不同的两张表,根据自定义规则,解析sql语句,分别存入对应的库和表。

      3.应用场景

      在水平分库分表的情况下,使用垂直切分,形成专库专表。

    2. 读写分离

      1. 前提:要先使用 MySql 自身功能实现主从复制。
      2. 读写分离:主节点执行写操作,从节点执行读操作。再进行分库分表操作,根据自定义规则,解析sql语句,存入对应的库和表。

ShardingSphere-JDBC 分库分表需要提前规划并创建库或表;
查询也遵循自定义规则,如果查询条件字段是自定义规则字段,会直接查询对应的库或表;否则,会查询自定义规则中包含的所有库和表。测试情况查看下方操作。


  1. 操作
    • 通用操作

      1. 创建 spring-boot项目

      2. 引入依赖

        shardingsphere-jdbc 依赖

        #shardingsphere-jdbc依赖
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>shardingsphere-jdbc-core</artifactId>
        		<!-- 注意:请将 ${latest.release.version} 更改为实际的版本号 -->
        		<!-- 本次使用的是<version>4.0.0-RC1</version> -->
            <version>${latest.release.version}</version>
        </dependency>
        

        全部依赖

        <!-- pom.xml -->
        <?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.2.1.RELEASE</version>
                <relativePath/> <!-- lookup parent from repository -->
            </parent>
            <groupId>com.example</groupId>
            <artifactId>shardingjdbcdemo</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <name>shardingjdbcdemo</name>
            <description>Demo project for Spring Boot</description>
        
            <properties>
                <java.version>1.8</java.version>
            </properties>
        
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                </dependency>
        
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-test</artifactId>
                    <scope>test</scope>
                    <exclusions>
                        <exclusion>
                            <groupId>org.junit.vintage</groupId>
                            <artifactId>junit-vintage-engine</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
        	<!-- druid连接池 -->
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid-spring-boot-starter</artifactId>
                    <version>1.1.13</version>
                </dependency>
        	<!-- mysql -->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </dependency>
        	<!-- sharding-jdbc -->
                <dependency>
                    <groupId>org.apache.shardingsphere</groupId>
                    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
                    <version>4.0.0-RC1</version>
                </dependency>
        	<!-- mybatis-plus -->
                <dependency>
                    <groupId>com.baomidou</groupId>
                    <artifactId>mybatis
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值