環境 springboot+mybatis-plus+driud
注:druid引入方式請不要使用boot-starter方式
<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId> <version>5.2.0</version> </dependency>
yml配置
shardingsphere: mode: type: Standalone schema: name: multit-tenant props: sql-show: false datasource: # 配置真實資料來源 names: ds0 ds0: # 配置第 1 個資料來源 type: ${spring.datasource.type} driver-class-name: ${spring.datasource.driverClassName} url: ${spring.datasource.url} username: ${spring.datasource.username} password: ${spring.datasource.password} rules: # 配置 表規則 sharding: tables: user_operation_log: # 分表,表名 # 配置分庫策略 # 由資料來源名 + 表名組成,以小數點分隔。多個表以逗號分隔,支援inline表示式。預設表示使用已知資料來源與邏輯表名稱生成資料節點,用於廣播表(即每個庫中都需要一個同樣的表用於關聯查詢,多為字典表)或只分庫不分表且所有庫的表結構完全一致的情況 actual-data-nodes: ds0.user_operation_log_$->{202411..202412} #資料節點,均勻分佈 table-strategy: # 配置分表策略 standard: sharding-column: create_time sharding-algorithm-name: table-inline # 配置 分片演算法 sharding-algorithms: table-inline: type: INLINE props: algorithm-expression: user_operation_log_$->{create_time.toString().substring(0, 7).replace("-", "")} #按模運算分配 allow-range-query-with-inline-sharding: true
以上程式碼可正常執行