diff --git a/pom.xml b/pom.xml index db41f3c..a584d8e 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,6 @@ 3.1.1 3.2.5 1.2.21 - 4.1.1 3.5.2 6.0.0 1.1 @@ -112,13 +111,6 @@ ${druid.version} - - - org.apache.shardingsphere - sharding-jdbc-core - ${shardingsphere.version} - - com.baomidou diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index d2c68a8..5a74ed1 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -16,19 +16,6 @@ spring: url: username: password: - sharding: - # 分库分表开关/默认关闭 - enabled: false - ruoyi1: - enabled: false - url: - username: - password: - ruoyi2: - enabled: false - url: - username: - password: # 初始连接数 initialSize: 5 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java index f380fc6..61ba373 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java @@ -15,9 +15,4 @@ public enum DataSourceType { * 从库 */ SLAVE, - - /** - * 分库分表 - */ - SHARDING } diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index e500c38..cd7010b 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -34,12 +34,6 @@ druid-spring-boot-3-starter - - - org.apache.shardingsphere - sharding-jdbc-core - - com.atomikos diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java index b58c17e..b8af262 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java @@ -106,7 +106,6 @@ public class DruidConfig { Map targetDataSources = new HashMap<>(); targetDataSources.put(MASTER, masterDataSource); setDataSource(targetDataSources, SLAVE, "slaveDataSource"); - setDataSource(targetDataSources, DataSourceType.SHARDING.name(), "shardingDataSource"); return new DynamicDataSource(masterDataSource, targetDataSources); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShardingDataSourceConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShardingDataSourceConfig.java deleted file mode 100644 index 5e8bcea..0000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShardingDataSourceConfig.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.ruoyi.framework.config; - -import java.sql.SQLException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import javax.sql.DataSource; - -import org.apache.shardingsphere.api.config.sharding.KeyGeneratorConfiguration; -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.shardingjdbc.api.ShardingDataSourceFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceBuilder; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.framework.config.properties.DruidProperties; - -/** - * sharding 配置信息 - * - * @author ruoyi - */ -@Configuration -@ConditionalOnProperty(prefix = "spring.datasource.druid.sharding", name = "enabled", havingValue = "true") -public class ShardingDataSourceConfig { - - Logger logger = LoggerFactory.getLogger(ShardingDataSourceConfig.class); - - @Bean - @ConfigurationProperties("spring.datasource.druid.sharding.ruoyi1") - @ConditionalOnProperty(prefix = "spring.datasource.druid.sharding.ruoyi1", name = "enabled", havingValue = "true") - public DataSource ruoyi1DataSource(DruidProperties druidProperties) { - DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); - return druidProperties.dataSource(dataSource); - } - - @Bean - @ConfigurationProperties("spring.datasource.druid.sharding.ruoyi2") - @ConditionalOnProperty(prefix = "spring.datasource.druid.sharding.ruoyi2", name = "enabled", havingValue = "true") - public DataSource ruoyi2DataSource(DruidProperties druidProperties) { - DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); - return druidProperties.dataSource(dataSource); - } - - /** - * 设置数据源 - * - * @param targetDataSources 备选数据源集合 - * @param sourceName 数据源名称 - * @param beanName bean名称 - */ - public void setDataSource(Map targetDataSources, String sourceName, String beanName) { - try { - DataSource dataSource = SpringUtils.getBean(beanName); - targetDataSources.put(sourceName, dataSource); - } catch (Exception e) { - logger.error("Failed to register a sharding data source:{}", beanName); - } - } - - @Bean(name = "shardingDataSource") - public DataSource shardingDataSource() throws SQLException { - Map dataSourceMap = new HashMap<>(); - - // 添加数据源 - setDataSource(dataSourceMap, "ruoyi1", "ruoyi1DataSource"); - setDataSource(dataSourceMap, "ruoyi2", "ruoyi2DataSource"); - - // 配置分片规则 - ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); - // 表规则配置 示例: - // 添加order1.sys_order_0,order2.sys_order_0,order1.sys_order_1,order2.sys_order_1 - TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration( - "sys_user", "ruoyi$->{1..2}.sys_user_$->{0..1}"); - // 配置分库策略 - // 示例: 根据user_id分库,user_id为单数去order1库,偶数去order2库 - orderTableRuleConfig.setDatabaseShardingStrategyConfig( - new InlineShardingStrategyConfiguration("user_id", "ruoyi$->{user_id % 2 + 1}")); - // 配置分表策略 - // 示例: 根据sex分表,sex为偶数分到sys_order_0表,奇数分到sys_order_1表 - orderTableRuleConfig.setTableShardingStrategyConfig( - new InlineShardingStrategyConfiguration("sex", "sys_user_$->{sex % 2}")); - // 分布式主键 - orderTableRuleConfig.setKeyGeneratorConfig(new KeyGeneratorConfiguration("SNOWFLAKE", "user_id")); - shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig); - - // 获取数据源对象 - DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, - getProperties()); - return dataSource; - } - - /** - * 系统参数配置 - */ - private Properties getProperties() { - Properties shardingProperties = new Properties(); - shardingProperties.put("sql.show", true); - return shardingProperties; - } -} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index ceb43ea..e8b1a90 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -4,16 +4,13 @@ import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.enums.DataSourceType; /** * 用户表 数据层 * * @author ruoyi */ -@DataSource(DataSourceType.SHARDING) public interface SysUserMapper { /**