环境 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: Standaloneschema:name: multit-tenantprops:sql-show: falsedatasource:# 配置真实数据源names: ds0ds0: # 配置第 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_timesharding-algorithm-name: table-inline# 配置 分片算法sharding-algorithms:table-inline:type: INLINEprops:algorithm-expression: user_operation_log_$->{create_time.toString().substring(0, 7).replace("-", "")} #按模运算分配allow-range-query-with-inline-sharding: true
以上代码可正常执行