# rssc-data-source **Repository Path**: 553403977/rssc-data-source ## Basic Information - **Project Name**: rssc-data-source - **Description**: 数据源,整合 mysql & druid & mybatis & mybatis-plus & dynamic-datasource & sharding-jdbc - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-09-08 - **Last Updated**: 2022-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 全局配置 Springboot: 2.3.4.RELEASE > ### springboot + druid + jdbc * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * 配置引入: * application-spring-datasource.yml * application-druid.yml * 依赖模块: * jdbc > ### springboot + druid + jdbc + mybatis * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * mybatis-spring-boot-starter: 2.1.3 * 配置引入: * application-spring-datasource.yml * application-druid.yml * application-mybatis.yml * 依赖模块: * jdbc * mybatis > ### springboot + druid + jdbc + mybatis + mybatis-plus * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * mybatis-spring-boot-starter: 2.1.3 * mybatis-plus-boot-starter: 3.3.2 * 配置引入: * application-spring-datasource.yml * application-druid.yml * application-mybatis-plus.yml * 依赖模块: * jdbc * mybatis * mybatis-plus > ### springboot + druid + jdbc + mybatis + mybatis-plus + dynamic-datasource * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * mybatis-spring-boot-starter: 2.1.3 * mybatis-plus-boot-starter: 3.3.2 * dynamic-datasource-spring-boot-starter: 2.4.2 * 配置引入: * application-mybatis-plus.yml * application-dynamic-datasource.yml * 依赖模块: * jdbc * mybatis * mybatis-plus * dynamic * 启动类 * 去除数据源自动配置 @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class) > ### springboot + druid + jdbc + mybatis + mybatis-plus + dynamic-datasource + sharding-jdbc >> #### 主从策略 * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * mybatis-spring-boot-starter: 2.1.3 * mybatis-plus-boot-starter: 3.3.2 * dynamic-datasource-spring-boot-starter: 2.4.2 * sharding-jdbc-spring-boot-starter: 4.1.0 * 配置引入: * application-mybatis-plus.yml * application-dynamic-datasource.yml * application-master-slave * 依赖模块: * jdbc * mybatis * mybatis-plus * dynamic * sharding-jdbc * ShardingJdbc数据源修改 * DataSourceConfiguration#shardingDataSource 修改为 @Resource(name = "masterSlaveDataSource") * 由于是多数据源在使用的service上切换数据源到Sharding上,数据源名称 DataSourceConfiguration.SHARDING_DATA_SOURCE_NAME >> #### 单库拆表 * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * mybatis-spring-boot-starter: 2.1.3 * mybatis-plus-boot-starter: 3.3.2 * dynamic-datasource-spring-boot-starter: 2.4.2 * sharding-jdbc-spring-boot-starter: 4.1.0 * 配置引入: * application-mybatis-plus.yml * application-dynamic-datasource.yml * application-sharding-tables.yml * 依赖模块: * jdbc * mybatis * mybatis-plus * dynamic * sharding-jdbc * ShardingJdbc数据源修改 * DataSourceConfiguration#shardingDataSource 修改 @Resource(name = "shardingDataSource") * 由于是多数据源在使用的service上切换数据源到Sharding上,数据源名称 DataSourceConfiguration.SHARDING_DATA_SOURCE_NAME * 这里需要注意的是基于id拆表的话,id不能是数据库自动生成的(type = IdType.AUTO),因为ShardingJdbc是基于对象的值,是在入库之前拆分的 >> #### 拆库拆表 * 依赖: * mysql-connector-java * druid-spring-boot-starter: 1.1.18 * spring-boot-starter-jdbc * mybatis-spring-boot-starter: 2.1.3 * mybatis-plus-boot-starter: 3.3.2 * dynamic-datasource-spring-boot-starter: 2.4.2 * sharding-jdbc-spring-boot-starter: 4.1.0 * 配置引入: * application-mybatis-plus.yml * application-dynamic-datasource.yml * application-sharding-database-tables.yml * 依赖模块: * jdbc * mybatis * mybatis-plus * dynamic * sharding-jdbc * ShardingJdbc数据源修改 * DataSourceConfiguration#shardingDataSource 修改 @Resource(name = "shardingDataSource") * 由于是多数据源在使用的service上切换数据源到Sharding上,数据源名称 DataSourceConfiguration.SHARDING_DATA_SOURCE_NAME * 这里需要注意的是基于id拆表的话,id不能是数据库自动生成的(type = IdType.AUTO),因为ShardingJdbc是基于对象的值,是在入库之前拆分的