sharding-jdbc 使用实例
时间: 2023-07-12 13:19:15 浏览: 134
sharding-jdbc-example
好的,下面是 Sharding-JDBC 的使用实例:
1. 引入依赖
在项目的 pom.xml 文件中,添加以下依赖:
```
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>${sharding-jdbc.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>${sharding-jdbc.version}</version>
</dependency>
```
其中,`${sharding-jdbc.version}` 表示 Sharding-JDBC 的版本号,可以根据自己的实际情况进行修改。
2. 配置数据源
在项目的配置文件中,添加以下配置:
```
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/sharding_db?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
shardingsphere:
# 配置数据分片规则
sharding:
tables:
user_info:
actualDataNodes: ds${0..1}.user_info_${0..1}
tableStrategy:
standard:
shardingColumn: user_id
shardingAlgorithmName: user_id_modulo
keyGenerateStrategy:
column: user_id
keyGeneratorName: snowflake
# 配置算法
defaultDataSourceName: ds0
shardingAlgorithms:
user_id_modulo:
type: INLINE
props:
algorithm-expression: user_info_${user_id % 2}
# 配置数据源
dataSources:
ds0:
url: jdbc:mysql://localhost:3306/ds0?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
ds1:
url: jdbc:mysql://localhost:3306/ds1?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
```
其中,`sharding_db` 表示逻辑数据库名,`ds0` 和 `ds1` 表示实际数据源名,`user_info` 表示要进行分片的表名,`user_id` 表示分片键。
3. 配置 ShardingDataSource
在 Spring 配置文件中,添加以下配置:
```
@Configuration
@Import(ShardingJdbcConfiguration.class)
public class DataSourceConfig {
@Bean
public DataSource dataSource() throws SQLException {
return ShardingDataSourceFactory.createDataSource(SpringUtil.getBean(ShardingJdbcConfiguration.class).getShardingRule(),
SpringUtil.getBean(ShardingJdbcConfiguration.class).getDataSources(),
SpringUtil.getBean(ShardingJdbcConfiguration.class).getProps());
}
}
```
其中,`ShardingJdbcConfiguration` 是一个配置类,用于读取配置文件中的数据源配置和分片规则配置。
4. 测试
在测试代码中,使用`@Autowired` 注解注入 `DataSource` 对象,即可使用 Sharding-JDBC 进行数据源的读写操作。
以上就是 Sharding-JDBC 的使用实例,希望能对你有所帮助!
阅读全文