sharding-jdbc分库分表开发包
<dependency>
<groupId>io.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
properties文件中添加配置项
# 库名符合 test0,test1 ... 规则
sharding.jdbc.dataSource.names=test0,test1,test2
sharding.jdbc.dataSource.test0.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.dataSource.test0.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.dataSource.test0.jdbc-url=jdbc:mysql://localhost:3306/test0?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
sharding.jdbc.dataSource.test0.username=root
sharding.jdbc.dataSource.test0.password=111111
sharding.jdbc.dataSource.test0.maxPoolSize=20
sharding.jdbc.dataSource.test1.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.dataSource.test1.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.dataSource.test1.jdbc-url=jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
sharding.jdbc.dataSource.test1.username=root
sharding.jdbc.dataSource.test1.password=111111
sharding.jdbc.dataSource.test1.maxPoolSize=20
sharding.jdbc.dataSource.test2.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.dataSource.test2.driver-class-name=com.mysql.cj.jdbc.Driver
sharding.jdbc.dataSource.test2.jdbc-url=jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
sharding.jdbc.dataSource.test2.username=root
sharding.jdbc.dataSource.test2.password=111111
sharding.jdbc.dataSource.test2.maxPoolSize=20
# 水平拆分的数据库(表) 配置分库 + 分表策略 行表达式分片策略
# 分库策略
sharding.jdbc.config.sharding.tables.t_user.actual-data-nodes=test$->{0..2}.t_user_$->{0..31}
# 分表策略 其中t_user为逻辑表 分表主要取决于id列
sharding.jdbc.config.sharding.tables.t_user.table-strategy.inline.sharding-column=id
# 分片算法表达式 表名符合 t_user_0,t_user_1 ... t_user_n 规则
sharding.jdbc.config.sharding.tables.t_user.table-strategy.inline.algorithm-expression=t_user_${id % 32}
# 生成主键
#sharding.jdbc.config.sharding.tables.t_user.key-generator-column-name=id
# 打印执行的数据库以及语句
sharding.jdbc.dataSource.props.sql.show=true
sharding.jdbc.config.props.sql.show=true
创建数据库和表,编写dao和service,最后测试结果如下