YAML 配置

    YAML 配置是最常见的配置方式,可以省略编程的复杂度,简化用户配置。

    通过 YamlShardingSphereDataSourceFactory 工厂创建的 ShardingSphereDataSource 实现自 JDBC 的标准接口 DataSource。

    创建携带治理功能的数据源

    通过 YamlGovernanceShardingSphereDataSourceFactory 工厂创建的 GovernanceShardingSphereDataSource 实现自 JDBC 的标准接口 DataSource。

    1. File yamlFile = // ...
    2. DataSource dataSource = YamlGovernanceShardingSphereDataSourceFactory.createDataSource(yamlFile);

    以原生 JDBC 使用方式为例:

    1. DataSource dataSource = // 通过Apache ShardingSphere 工厂创建的数据源
    2. String sql = "SELECT i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE o.user_id=? AND o.order_id=?";
    3. try (
    4. Connection conn = dataSource.getConnection();
    5. PreparedStatement ps = conn.prepareStatement(sql)) {
    6. ps.setInt(1, 10);
    7. ps.setInt(2, 1000);
    8. try (ResultSet rs = preparedStatement.executeQuery()) {
    9. while(rs.next()) {
    10. // ...
    11. }
    12. }

    数据源配置

    分为单数据源配置和多数据源配置。 单数据源配置用于数据加密规则;多数据源配置用于分片、读写分离等规则。 如果加密和分片等功能混合使用,则应该使用多数据源配置。

    单数据源配置

    配置示例
    配置项说明
    1. dataSource: # <!!数据库连接池实现类> `!!`表示实例化该类
    2. driverClassName: # 数据库驱动类名
    3. url: # 数据库 URL 连接
    4. username: # 数据库用户名
    5. # ... 数据库连接池的其它属性

    多数据源配置

    配置示例
    1. dataSources:
    2. ds_0: !!org.apache.commons.dbcp2.BasicDataSource
    3. driverClassName: org.h2.Driver
    4. url: jdbc:h2:mem:ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
    5. username: sa
    6. password:
    7. ds_1: !!org.apache.commons.dbcp2.BasicDataSource
    8. driverClassName: org.h2.Driver
    9. url: jdbc:h2:mem:ds_1;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
    10. password:
    配置项说明

    以规则别名开启配置,可配置多个规则。

    配置示例

    1. rules:
    2. -! XXX_RULE_0
    3. xxx
    4. -! XXX_RULE_1
    5. xxx

    配置项说明

    1. rules:
    2. -! XXX_RULE # 规则别名,`-` 表示可配置多个规则
    3. # ... 具体的规则配置

    属性配置

    配置示例

    配置项说明

    1. xxx: xxx # 属性名称以及对应的值

    更多详细配置请参见具体的规则配置部分。

    !! 表示实例化该类

    ! 表示自定义别名

    [] 表示数组,可以与减号相互替换使用