springboot整合sharding-jdbc实现分库分表详解
@Configuration
public class ShardingJdbcConfig {
@Bean
public DataSource dataSource() {
// 配置数据源
ShardingDataSource dataSource = ShardingDataSourceFactory.createDataSource(
createDataSourceMap(),
new ShardingRuleConfiguration().getShardingRuleConfiguration("your_table_name"),
new Properties()
);
return dataSource;
}
private Map<String, DataSource> createDataSourceMap() {
// 创建数据源映射
Map<String, DataSource> dataSourceMap = new HashMap<>();
dataSourceMap.put("ds_0", createDataSource("ds_0"));
dataSourceMap.put("ds_1", createDataSource("ds_1"));
return dataSourceMap;
}
private DataSource createDataSource(String dataSourceName) {
// 创建HikariCP数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl(String.format("jdbc:mysql://localhost:3306/%s", dataSourceName));
dataSource.setUsername("your_username");
dataSource.setPassword("your_password");
return dataSource;
}
}
这个配置类定义了一个dataSource
的Bean,它使用ShardingJdbc的ShardingDataSourceFactory
来创建一个ShardingDataSource
实例,这个实例包含了两个数据源映射,分别是ds_0
和ds_1
,并且根据ShardingRuleConfiguration
来进行分库分表的配置。在实际使用时,你需要替换your_table_name
、数据源的名称、数据库的URL、用户名和密码为你自己的配置。
评论已关闭