|
@@ -1,88 +1,88 @@
|
|
|
-package com.xin.shardingspherejdbcdemo.config.sharding;
|
|
|
-
|
|
|
-import com.alibaba.druid.pool.DruidDataSource;
|
|
|
-import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
|
|
|
-import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;
|
|
|
-import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;
|
|
|
-import org.apache.shardingsphere.api.config.sharding.strategy.ShardingStrategyConfiguration;
|
|
|
-import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
-
|
|
|
-import javax.sql.DataSource;
|
|
|
-import java.sql.SQLException;
|
|
|
-import java.util.*;
|
|
|
-
|
|
|
-@Configuration
|
|
|
-public class MyShardingDataSourceConfig {
|
|
|
-
|
|
|
-
|
|
|
- // 配置真实数据源
|
|
|
- Map<String, DataSource> createDataSourceMap() {
|
|
|
- // 配置真实数据源
|
|
|
- Map<String, DataSource> dataSourceMap = new HashMap<>();
|
|
|
- // 配置第一个数据源
|
|
|
- DruidDataSource order0 = new DruidDataSource();
|
|
|
- order0.setDbType("mysql");
|
|
|
- order0.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
|
|
- order0.setUrl("jdbc:mysql://192.168.29.131:3306/sharding_order0");
|
|
|
- order0.setUsername("root");
|
|
|
- order0.setPassword("123456");
|
|
|
- dataSourceMap.put("sharding_order0", order0);
|
|
|
- // 配置第一个数据源
|
|
|
- DruidDataSource order1 = new DruidDataSource();
|
|
|
- order1.setDbType("mysql");
|
|
|
- order1.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
|
|
- order1.setUrl("jdbc:mysql://192.168.29.131:3306/sharding_order1");
|
|
|
- order1.setUsername("root");
|
|
|
- order1.setPassword("123456");
|
|
|
- dataSourceMap.put("sharding_order1", order1);
|
|
|
- // 配置第一个数据源
|
|
|
- DruidDataSource user = new DruidDataSource();
|
|
|
- user.setDbType("mysql");
|
|
|
- user.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
|
|
- user.setUrl("jdbc:mysql://192.168.29.131:3306/sharding_user");
|
|
|
- user.setUsername("root");
|
|
|
- user.setPassword("123456");
|
|
|
- dataSourceMap.put("sharding_user", user);
|
|
|
- return dataSourceMap;
|
|
|
- }
|
|
|
-
|
|
|
- //分片规则
|
|
|
- List<TableRuleConfiguration> createTableRuleConfiguration() {
|
|
|
- List<TableRuleConfiguration> data = new ArrayList<>();
|
|
|
- // 配置Order表规则
|
|
|
-
|
|
|
- // 水平分表
|
|
|
- TableRuleConfiguration userConfig = new TableRuleConfiguration("user", "sharding_user.t_user$->{0..2}");
|
|
|
- // 配置分库 + 分表策略
|
|
|
- userConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("id", "t_user$->{id%3}"));
|
|
|
-
|
|
|
- // 配置分库 + 分表策略
|
|
|
- data.add(userConfig);
|
|
|
-
|
|
|
- return data;
|
|
|
- }
|
|
|
-
|
|
|
- ShardingRuleConfiguration createShardingRuleConfiguration() {
|
|
|
- ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration();
|
|
|
- shardingRuleConfig.getTableRuleConfigs().addAll(createTableRuleConfiguration());
|
|
|
- return shardingRuleConfig;
|
|
|
- }
|
|
|
-
|
|
|
- Properties createProperties() {
|
|
|
- Properties properties = new Properties();
|
|
|
- properties.setProperty("sql.show", "true");
|
|
|
- return properties;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @return
|
|
|
- * @throws SQLException
|
|
|
- */
|
|
|
- @Bean
|
|
|
- public DataSource getShardingDataSource() throws SQLException {
|
|
|
- return ShardingDataSourceFactory.createDataSource(createDataSourceMap(), createShardingRuleConfiguration(), createProperties());
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
+//package com.xin.shardingspherejdbcdemo.config.sharding;
|
|
|
+//
|
|
|
+//import com.alibaba.druid.pool.DruidDataSource;
|
|
|
+//import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
|
|
|
+//import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;
|
|
|
+//import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;
|
|
|
+//import org.apache.shardingsphere.api.config.sharding.strategy.ShardingStrategyConfiguration;
|
|
|
+//import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;
|
|
|
+//import org.springframework.context.annotation.Bean;
|
|
|
+//import org.springframework.context.annotation.Configuration;
|
|
|
+//
|
|
|
+//import javax.sql.DataSource;
|
|
|
+//import java.sql.SQLException;
|
|
|
+//import java.util.*;
|
|
|
+//
|
|
|
+//@Configuration
|
|
|
+//public class MyShardingDataSourceConfig {
|
|
|
+//
|
|
|
+//
|
|
|
+// // 配置真实数据源
|
|
|
+// Map<String, DataSource> createDataSourceMap() {
|
|
|
+// // 配置真实数据源
|
|
|
+// Map<String, DataSource> dataSourceMap = new HashMap<>();
|
|
|
+// // 配置第一个数据源
|
|
|
+// DruidDataSource order0 = new DruidDataSource();
|
|
|
+// order0.setDbType("mysql");
|
|
|
+// order0.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
|
|
+// order0.setUrl("jdbc:mysql://192.168.29.131:3306/sharding_order0");
|
|
|
+// order0.setUsername("root");
|
|
|
+// order0.setPassword("123456");
|
|
|
+// dataSourceMap.put("sharding_order0", order0);
|
|
|
+// // 配置第一个数据源
|
|
|
+// DruidDataSource order1 = new DruidDataSource();
|
|
|
+// order1.setDbType("mysql");
|
|
|
+// order1.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
|
|
+// order1.setUrl("jdbc:mysql://192.168.29.131:3306/sharding_order1");
|
|
|
+// order1.setUsername("root");
|
|
|
+// order1.setPassword("123456");
|
|
|
+// dataSourceMap.put("sharding_order1", order1);
|
|
|
+// // 配置第一个数据源
|
|
|
+// DruidDataSource user = new DruidDataSource();
|
|
|
+// user.setDbType("mysql");
|
|
|
+// user.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
|
|
+// user.setUrl("jdbc:mysql://192.168.29.131:3306/sharding_user");
|
|
|
+// user.setUsername("root");
|
|
|
+// user.setPassword("123456");
|
|
|
+// dataSourceMap.put("sharding_user", user);
|
|
|
+// return dataSourceMap;
|
|
|
+// }
|
|
|
+//
|
|
|
+// //分片规则
|
|
|
+// List<TableRuleConfiguration> createTableRuleConfiguration() {
|
|
|
+// List<TableRuleConfiguration> data = new ArrayList<>();
|
|
|
+// // 配置Order表规则
|
|
|
+//
|
|
|
+// // 水平分表
|
|
|
+// TableRuleConfiguration userConfig = new TableRuleConfiguration("user", "sharding_user.t_user$->{0..2}");
|
|
|
+// // 配置分库 + 分表策略
|
|
|
+// userConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("id", "t_user$->{id%3}"));
|
|
|
+//
|
|
|
+// // 配置分库 + 分表策略
|
|
|
+// data.add(userConfig);
|
|
|
+//
|
|
|
+// return data;
|
|
|
+// }
|
|
|
+//
|
|
|
+// ShardingRuleConfiguration createShardingRuleConfiguration() {
|
|
|
+// ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration();
|
|
|
+// shardingRuleConfig.getTableRuleConfigs().addAll(createTableRuleConfiguration());
|
|
|
+// return shardingRuleConfig;
|
|
|
+// }
|
|
|
+//
|
|
|
+// Properties createProperties() {
|
|
|
+// Properties properties = new Properties();
|
|
|
+// properties.setProperty("sql.show", "true");
|
|
|
+// return properties;
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * @return
|
|
|
+// * @throws SQLException
|
|
|
+// */
|
|
|
+// @Bean
|
|
|
+// public DataSource getShardingDataSource() throws SQLException {
|
|
|
+// return ShardingDataSourceFactory.createDataSource(createDataSourceMap(), createShardingRuleConfiguration(), createProperties());
|
|
|
+// }
|
|
|
+//
|
|
|
+//}
|