1、添加依赖
<!--sharding-sphere依赖--> <dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>3.1.0</version> </dependency>
2、配置
@Configuration public class ShardingJDBCConfiguration { @Bean(name ="ds_0") public DataSource dataSource0(){ PooledDataSource dataSource = new PooledDataSource(); try{ dataSource.setUsername("root"); dataSource.setPassword(""); dataSource.setDriver("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mytest?serverTimezone=UTC"); } catch (Exception e){ } return dataSource; } @Primary @Bean(name="shardingDataSource") public DataSource getDataSource(@Qualifier("ds_0") DataSource ds_0) throws SQLException { ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); //分表策略 shardingRuleConfig.getTableRuleConfigs().add(remarkRuleConfig()); Map<String, DataSource> dataSourceMap = new HashMap<>(); dataSourceMap.put("ds_0", ds_0); Properties properties = new Properties(); properties.setProperty("sql.show", Boolean.TRUE.toString()); return ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new ConcurrentHashMap<>(), properties); } private TableRuleConfiguration remarkRuleConfig() { // 配置address表规则 TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(); tableRuleConfig.setLogicTable("logtable"); tableRuleConfig.setActualDataNodes("ds_0.logtable_${1..2}"); // tableRuleConfig.setKeyGeneratorColumnName("id"); // 配置分库 + 分表策略 tableRuleConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("remark", "logtable_${remark % 2}")); return tableRuleConfig; } @Bean(name = "shardSqlSessionFactory") public MybatisSqlSessionFactoryBean shardSqlSessionFactory(@Qualifier("shardingDataSource") DataSource dataSource) throws Exception { MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean (); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml")); return bean; } }
3、根据需求实现自己的业务代码