1. # sharding-jdbc 水平分库分表策略
    2. # 配置数据源,给数据源起别名
    3. # 水平分库需要配置多个数据库
    4. spring.shardingsphere.datasource.names=m1,f1,f2,f3,f4,f5
    5. spring.shardingsphere.sharding.binding-tables=flight_record
    6. # 一个实体类对应两张表,覆盖
    7. spring.main.allow-bean-definition-overriding=true
    8. ## 配置第一个数据源的具体内容,包含连接池,驱动,地址,用户名,密码 主数据源
    9. spring.shardingsphere.datasource.m1.type=com.alibaba.druid.pool.DruidDataSource
    10. spring.shardingsphere.datasource.m1.driver-class-name=com.mysql.cj.jdbc.Driver
    11. spring.shardingsphere.datasource.m1.url=jdbc:mysql://基础库:3306/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    12. spring.shardingsphere.datasource.m1.username=root
    13. spring.shardingsphere.datasource.m1.password=123456
    14. # 配置第二个数据源的具体内容,包含连接池,驱动,地址,用户名,密码
    15. spring.shardingsphere.datasource.f1.type=com.alibaba.druid.pool.DruidDataSource
    16. spring.shardingsphere.datasource.f1.driver-class-name=com.mysql.cj.jdbc.Driver
    17. spring.shardingsphere.datasource.f1.url=jdbc:mysql://数据库地址:3306/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    18. spring.shardingsphere.datasource.f1.username=root
    19. spring.shardingsphere.datasource.f1.password=123456
    20. # 配置第三个数据源的具体内容,包含连接池,驱动,地址,用户名,密码
    21. spring.shardingsphere.datasource.f2.type=com.alibaba.druid.pool.DruidDataSource
    22. spring.shardingsphere.datasource.f2.driver-class-name=com.mysql.cj.jdbc.Driver
    23. spring.shardingsphere.datasource.f2.url=jdbc:mysql://数据库地址:3306/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    24. spring.shardingsphere.datasource.f2.username=root
    25. spring.shardingsphere.datasource.f2.password=123456
    26. # 配置第三个数据源的具体内容,包含连接池,驱动,地址,用户名,密码
    27. spring.shardingsphere.datasource.f3.type=com.alibaba.druid.pool.DruidDataSource
    28. spring.shardingsphere.datasource.f3.driver-class-name=com.mysql.cj.jdbc.Driver
    29. spring.shardingsphere.datasource.f3.url=jdbc:mysql://数据库地址:3306/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    30. spring.shardingsphere.datasource.f3.username=root
    31. spring.shardingsphere.datasource.f3.password=123456
    32. # 配置第四个数据源的具体内容,包含连接池,驱动,地址,用户名,密码
    33. spring.shardingsphere.datasource.f4.type=com.alibaba.druid.pool.DruidDataSource
    34. spring.shardingsphere.datasource.f4.driver-class-name=com.mysql.cj.jdbc.Driver
    35. spring.shardingsphere.datasource.f4.url=jdbc:mysql://数据库地址:3306/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    36. spring.shardingsphere.datasource.f4.username=root
    37. spring.shardingsphere.datasource.f4.password=123456
    38. # 配置第五个数据源的具体内容,包含连接池,驱动,地址,用户名,密码
    39. spring.shardingsphere.datasource.f5.type=com.alibaba.druid.pool.DruidDataSource
    40. spring.shardingsphere.datasource.f5.driver-class-name=com.mysql.cj.jdbc.Driver
    41. spring.shardingsphere.datasource.f5.url=jdbc:mysql://数据库地址:3306/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    42. spring.shardingsphere.datasource.f5.username=root
    43. spring.shardingsphere.datasource.f5.password=123456
    44. # 指定数据库分布的情况和数据表分布的情况
    45. # m1 m2 flight_record flight_record
    46. spring.shardingsphere.sharding.tables.flight_record.actual-data-nodes=f$->{1..5}.flight_record
    47. # 指定 flight_record 表里面主键 id 的生成策略 SNOWFLAKE
    48. spring.shardingsphere.sharding.tables.flight_record.key-generator.column=id
    49. spring.shardingsphere.sharding.tables.flight_record.key-generator.type=SNOWFLAKE
    50. # 指定分库策略 约定 analyse_id 值偶数添加到 m1 库,如果 tenant_id 是奇数添加到 m2 库
    51. # 默认写法(所有的表的tenant_id)
    52. spring.shardingsphere.sharding.tables.flight_record.database-strategy.inline.sharding-column=analyse_id
    53. spring.shardingsphere.sharding.tables.flight_record.database-strategy.inline.algorithm-expression=f$->{analyse_id % 5 + 1}
    54. #default-data-source-name: m1 #对于其他业务表设置默认数据源
    55. spring.shardingsphere.sharding.default-data-source-name=m1
    56. # 打开 sql 输出日志
    57. spring.shardingsphere.props.sql.show=true