一、准备工作
1、准备三个数据库:db0、db1、db2
2、每个数据库新建两个订单表:t_order_0、t_order_1
DROP TABLE IF EXISTS`t_order_x`;CREATE TABLE `t_order_x` (
`id`bigint NOT NULLAUTO_INCREMENT,
`user_id` bigint NOT NULL,
`order_id`bigint NOT NULL,
`order_no`varchar(30) NOT NULL,
`isactive`tinyint NOT NULL DEFAULT ‘1‘,
`inserttime`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updatetime`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、分库分表配置
数据源的配置可以使用任何链接池,本例用druid为例。
1、引言依赖包:
引用最新的maven包
2.0.1
io.shardingjdbc
sharding-jdbc-core
${sharding-jdbc.version}
2、配置DataSource:
@Bean(name = "shardingDataSource", destroyMethod = "close")@Qualifier("shardingDataSource")publicDataSource getShardingDataSource() {//配置真实数据源
Map dataSourceMap = new HashMap<>(3);//配置第一个数据源
DruidDataSource dataSource1=createDefaultDruidDataSource();
dataSource1.setDriverClassName("com.mysql.jdbc.Driver");
dataSource1.setUrl("jdbc:mysql://localhost:3306/db0");
dataSource1.setUsername("root");
dataSource1.setPassword("root");
dataSourceMap.put("db0", dataSource1);//配置第二个数据源
DruidDataSource dataSource2=createDefaultDruidDataSource();
dataSource2.setDriverClassName("com.mysql.jdbc.Driver");
dataSource2.setUrl("jdbc:mysql://localhost:3306/db1");
dataSource2.setUsername("root");
dataSource2.setPassword("root");
dataSource2.setName("db1-0001");
dataSourceMap.put("db1", dataSource2);//配置第三个数据源<