1,引入相应jar
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>sharding-jdbc-config-spring</artifactId>
<version>1.5.4.1</version>
</dependency>
<dependency>
<groupId>io.shardingjdbc</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>2.0.3</version>
</dependency>
2,新建数据源配置类(这里我们用的是
com.zaxxer.hikari.HikariDataSource)
package com.digigd.marketadmin.config;//package com.digigd.marketadmin.config;
import cn.hutool.core.date.DateUtil;
import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule;
import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule;
import com.dangdang.ddframe.rdb.sharding.api.rule.TableRule;
import com.dangdang.ddframe.rdb.sharding.api.strategy.table.TableShardingStrategy;
import com.digigd.marketadmin.common.ShardingAlgorithm.SingleKeyDynamicModuloTableShardingAlgorithm;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.*;
/**
* @author 邓
* @Title: ${file_name}
* @Package ${package_name}
* @Description: ${todo}
* @date 2020/7/814:53
*/
@Configuration
@EnableTransactionManagement
@ConditionalOnClass(HikariDataSource.class)
@EnableConfigurationProperties(ShardDataSourceProperties.class)
public class ShardDataSourceConfig {
private final static String log_base_info = "log_base_info";
@Autowired
private ShardDataSourceProperties shardDataSourceProperties;
private ShardingRule shardingRule() throws SQLException {
return ShardingRule.builder()
.dataSourceRule(getDataSourceRule())
.tableRules(Arrays.asList(getTableRule(