数据量达到一定程度的话可能就会进行分库分表,所以最近研究了一个分库分表的插件ShardingJDBC,因为myCat或者其他的开源插件都已经不维护了或者停止更新,目前ShardingJDBC比较活跃,而且不用进行单独部署工作,这点还是比较好的。那么接下来就贴一下代码,看怎么使用它。
1.先把表结构贴出来,我的数据库一个部署在linux的腾讯云上,一个部署在本机上第一个数据库是mall_0,表为t_order_0,t_order_1。第二个数据库是mall_1表为t_order_0,t_order_1。稍后在后边附带数据库脚本。
2.首先需要在pom.xml里添加jar包,必然要放的呀~
<!-- 我的springboot版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- MySQL的JDBC驱动包,操作mysql,必然需要mysql啊 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- shardingjdbc,主角登场 -->
<dependency>
<groupId>io.shardingjdbc</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>2.0.3</version>
</dependency>
<!-- druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
3.jar包下载完毕,就需要写配置文件喽,需要配置数据库连接信息
server:
port: 9999
spring:
application:
name: sharding-jdbc
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
default-property-inclusion: non_null
datasource:
type: com.alibaba.druid.pool.DruidDataSource
ds0:
url: jdbc:mysql://localhost:3306/mall_0?serverTimezone=UTC
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: root
ds1:
url: jdbc:mysql://xxx:3307/mall_1?serverTimezone=UTC
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: root
4.就需要启动注入方式将分库分表规则写入,再把dataSorce连接加入规则,添加类ShardingConfig
package com.itdf.config;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.