diff --git a/src/main/java/info/avalon566/shardingscaling/sync/jdbc/AbstractJdbcReader.java b/src/main/java/info/avalon566/shardingscaling/sync/jdbc/AbstractJdbcReader.java index cc084e7f59e6686aee4383987af9d79ecb28e087..f3b56c980d8763c48923a881bc030c6ddd1f3b74 100755 --- a/src/main/java/info/avalon566/shardingscaling/sync/jdbc/AbstractJdbcReader.java +++ b/src/main/java/info/avalon566/shardingscaling/sync/jdbc/AbstractJdbcReader.java @@ -19,6 +19,7 @@ package info.avalon566.shardingscaling.sync.jdbc; import info.avalon566.shardingscaling.sync.core.*; import lombok.Setter; +import lombok.extern.slf4j.Slf4j; import lombok.var; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,10 +34,9 @@ import static java.sql.ResultSet.TYPE_FORWARD_ONLY; /** * @author avalon566 */ +@Slf4j public abstract class AbstractJdbcReader extends AbstractRunner implements Reader { - private static final Logger LOGGER = LoggerFactory.getLogger(AbstractJdbcReader.class); - protected final RdbmsConfiguration rdbmsConfiguration; @Setter @@ -85,15 +85,19 @@ public abstract class AbstractJdbcReader extends AbstractRunner implements Reade @Override public List split(int concurrency) { var primaryKeys = new DbMetaDataUtil(rdbmsConfiguration).getPrimaryKeys(rdbmsConfiguration.getTableName()); + if (primaryKeys == null || primaryKeys.size() == 0) { + log.warn("{} 表主键不存在, 不支持并发执行", rdbmsConfiguration.getTableName()); + return Arrays.asList(rdbmsConfiguration); + } if (1 < primaryKeys.size()) { - LOGGER.warn("%s 为联合主键,不支持并发执行"); + log.warn("{} 表为联合主键, 不支持并发执行", rdbmsConfiguration.getTableName()); return Arrays.asList(rdbmsConfiguration); } var metaData = new DbMetaDataUtil(rdbmsConfiguration).getColumNames(rdbmsConfiguration.getTableName()); var index = DbMetaDataUtil.findColumnIndex(metaData, primaryKeys.get(0)); try { if (Types.INTEGER != metaData.get(index).getColumnType()) { - LOGGER.warn("%s 不是整形,不支持并发执行"); + log.warn("{} 主键不是整形,不支持并发执行", rdbmsConfiguration.getTableName()); return Arrays.asList(rdbmsConfiguration); } } catch (Exception e) {