Sharding-JDBC不是做分库分表,它是在已经做好分库分表的基础上去操作数据,结构图如下:
它主要做两个功能:数据分片和读写分离,仅要引入jar包就可以了,兼容orm框架、各种常用数据库。其目的是为了简化对分库分表之后数据相关操作。 接下来先介绍数据分片,数据分片有分库和分表,目前是根据shardingjdbc4.1.1的版本来做,值得一提的是不同版本的shardingjdbc其配置可能不同,然后Jar别引用官方说的,用core包,还有就是别写yml或者proerties配置,要写代码配置要不然得跪。
重要的事情说三遍:写代码配置!写代码配置!写代码配置!
然后预先给出sharding-jdbc的jar包配置:
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>4.1.1</version>
</dependency>
重要的事情说三遍:不要用什么spring-sharding的包!不要用什么spring-sharding的包!不要用什么spring-sharding的包!
才到这为什么这么重要的事?因为都是坑!才爬出来的! 接下来新建一个maven工程(父工程),具体过程省略,然后配置父工程的pom配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<mysql.version>8.0.16</mysql.version>
<druid.version>1.1.16</druid.version>
<maven.test.skip>true</maven.test.skip><!--跳过测试且不会生成class -->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version> 2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</t