接着上一篇:SpringBoot 分库分表sharding-sphere
上一篇的自定义分片算法有个错误DateShardingAlgorithm.java
该类的日期转换错误,正确如下:
package com.pack.sharding.algorithm;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.util.Collection;import java.util.Date;import org.apache.shardingsphere.api.sharding.standard.PreciseShardingAlgorithm;import org.apache.shardingsphere.api.sharding.standard.PreciseShardingValue;public class DateTableShardingAlgorithm implements PreciseShardingAlgorithm {private static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM");@Overridepublic String doSharding(Collection availableTargetNames, PreciseShardingValue shardingValue) {Date value = shardingValue.getValue() ;if (value == null) {value = new Date() ;}String actualTableName = shardingValue.getLogicTableName() + "_" + formatter.form