快速入门分库分表中间件 Sharding-JDBC
Sharding-JDBC 是一款由当当网开源的分库分表中间件。以下是一个使用 Sharding-JDBC 进行分库分表的简单示例。
- 添加 Maven 依赖:
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>最新版本</version>
</dependency>
- 配置分库分表规则。在
sharding-jdbc.yml
文件中配置数据源和分片规则:
shardingRule:
tables:
t_order:
actualDataNodes: ds${0..1}.t_order_${0..1}
databaseStrategy:
standard:
shardingColumn: user_id
shardingAlgorithmName: database_inline
tableStrategy:
standard:
shardingColumn: order_id
shardingAlgorithmName: table_inline
bindingTables:
- t_order,t_order_item
defaultDatabaseStrategy:
standard:
shardingColumn: user_id
shardingAlgorithmName: database_inline
defaultTableStrategy:
none:
shardingAlgorithms:
database_inline:
type: INLINE
props:
algorithm-expression: ds${user_id % 2}
table_inline:
type: INLINE
props:
algorithm-expression: t_order_${order_id % 2}
dataSources:
ds0:
url: jdbc:mysql://localhost:3306/ds0
username: root
password:
ds1:
url: jdbc:mysql://localhost:3306/ds1
username: root
password:
- 使用 Sharding-JDBC 进行数据库操作:
// 配置数据源
DataSource dataSource = ShardingDataSourceFactory.createDataSource(yamlFile);
// 获取连接
Connection conn = dataSource.getConnection();
// 执行SQL
String sql = "INSERT INTO t_order (user_id, order_id) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 10);
pstmt.setInt(2, 1000);
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
在这个例子中,我们配置了基于用户ID和订单ID的分库分表规则,并展示了如何使用 Sharding-JDBC 进行数据库操作。在实际应用中,你需要根据自己的数据库环境和需求进行相应的配置调整。
评论已关闭