diff --git a/datachecker-check/src/main/java/org/opengauss/datachecker/check/load/AbstractCheckLoader.java b/datachecker-check/src/main/java/org/opengauss/datachecker/check/load/AbstractCheckLoader.java index c256f0eb27acd3f942a9a3eb0357e565ad8e6749..c382f9099e262f94f731fff352484eedef941e1d 100644 --- a/datachecker-check/src/main/java/org/opengauss/datachecker/check/load/AbstractCheckLoader.java +++ b/datachecker-check/src/main/java/org/opengauss/datachecker/check/load/AbstractCheckLoader.java @@ -38,8 +38,7 @@ public abstract class AbstractCheckLoader implements CheckLoader { protected int maxRetryTimes; @Value("${data.check.retry-interval-times}") protected int retryIntervalTimes; - @Resource - private CheckEnvironment checkEnvironment; + @Resource private ShutdownService shutdownService; @Resource @@ -47,14 +46,6 @@ public abstract class AbstractCheckLoader implements CheckLoader { @Resource private CustomEventHistory customEventHistory; - /** - * Verification environment global information loader - * - * @param checkEnvironment checkEnvironment - */ - @Override - public abstract void load(CheckEnvironment checkEnvironment); - /** * shutdown app * diff --git a/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/check/AbstractCheckDiffResultBuilder.java b/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/check/AbstractCheckDiffResultBuilder.java index b0586203de37c2cb6c581389fd735343d46ff772..024f503c9cba710b0e89b28acbd3f4decf35b97a 100644 --- a/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/check/AbstractCheckDiffResultBuilder.java +++ b/datachecker-check/src/main/java/org/opengauss/datachecker/check/modules/check/AbstractCheckDiffResultBuilder.java @@ -72,7 +72,7 @@ public abstract class AbstractCheckDiffResultBuilder columnsMetas) { - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); columnsMetas.sort(Comparator.comparing(ColumnsMetaData::getOrdinalPosition)); - columnsMetas.forEach(column -> { - buffer.append(column.getColumnName() - .toLowerCase(Locale.ENGLISH)) - .append(column.getOrdinalPosition()); - }); + columnsMetas.forEach(column -> buffer.append(column.getColumnName() + .toLowerCase(Locale.ENGLISH)) + .append(column.getOrdinalPosition())); return HASH_UTIL.hashBytes(buffer.toString()); } @@ -285,7 +283,8 @@ public class BaseDataService { .filter(mode -> !mode.equalsIgnoreCase( ConfigConstants.SQL_MODE_NAME_PAD_CHAR_TO_FULL_LENGTH)) .collect(Collectors.joining(",")); - if (ConfigCache.getBooleanValue(ConfigConstants.SQL_MODE_PAD_CHAR_TO_FULL_LENGTH)) { + boolean isPadCharFull = ConfigCache.getBooleanValue(ConfigConstants.SQL_MODE_PAD_CHAR_TO_FULL_LENGTH); + if (isPadCharFull) { newSqlMode += ConfigConstants.SQL_MODE_NAME_PAD_CHAR_TO_FULL_LENGTH; } boolean isForceRefreshConnectionSqlMode = sqlMode.length() != newSqlMode.length(); diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/data/access/AbstractDataAccessService.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/data/access/AbstractDataAccessService.java index c67057a513daad58094516533e92251b57a85e5f..51fa02810c9ecd705a1ff581005d86e51219f2b5 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/data/access/AbstractDataAccessService.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/data/access/AbstractDataAccessService.java @@ -197,25 +197,9 @@ public abstract class AbstractDataAccessService implements DataAccessService { * @return tableMetadata */ protected List wrapperTableMetadata(List list) { - list.stream() - .forEach(meta -> { - meta.setDataBaseType(properties.getDatabaseType()) - .setEndpoint(properties.getEndpoint()) - .setOgCompatibilityB(isOgCompatibilityB); - }); + list.forEach(meta -> meta.setDataBaseType(properties.getDatabaseType()) + .setEndpoint(properties.getEndpoint()) + .setOgCompatibilityB(isOgCompatibilityB)); return list; } - - private List queryByCondition(String sql, Map paramMap, RowMapper rowMapper) { - LocalDateTime start = LocalDateTime.now(); - NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate); - List results = jdbc.query(sql, paramMap, rowMapper); - log.debug("query sql:<{}> size:{} cost:{}", sql, results.size(), Duration.between(start, LocalDateTime.now()) - .toSeconds()); - return results; - } - - protected String getSql(DataBaseMeta type) { - return null; - } } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/BaseRepairStatement.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/BaseRepairStatement.java index f56cfa6821bbbac102e524e3f22f3dc7f9d26059..9b1692e691fac504e1696e163b54bdfd068a607d 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/BaseRepairStatement.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/service/BaseRepairStatement.java @@ -101,9 +101,7 @@ public abstract class BaseRepairStatement implements RepairStatement { final List primaryMetas = metadata.getPrimaryMetas(); List resultList = new ArrayList<>(); if (primaryMetas.size() == 1) { - final ColumnsMetaData primaryMeta = primaryMetas.stream() - .findFirst() - .get(); + final ColumnsMetaData primaryMeta = primaryMetas.get(0); iterator.forEachRemaining(compositeKey -> { DeleteDmlBuilder deleteDmlBuilder = new DeleteDmlBuilder(DataBaseType.OG, repairEntry.isOgCompatibility()); @@ -130,9 +128,7 @@ public abstract class BaseRepairStatement implements RepairStatement { List primaryMetas) { final List primaryKeys = getCompositeKeyColumns(primaryMetas); Map> map = new HashMap<>(InitialCapacity.CAPACITY_16); - columnValues.forEach(values -> { - map.put(getCompositeKey(values, primaryKeys), values); - }); + columnValues.forEach(values -> map.put(getCompositeKey(values, primaryKeys), values)); return map; } @@ -144,7 +140,7 @@ public abstract class BaseRepairStatement implements RepairStatement { private String getCompositeKey(Map columnValues, List primaryKeys) { return primaryKeys.stream() - .map(key -> columnValues.get(key)) + .map(columnValues::get) .collect(Collectors.joining(ExtConstants.PRIMARY_DELIMITER)); } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractProcessor.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractProcessor.java index 0af962804778beeddd3a364570fbef0b8c0f6860..2f9cc2fe40fd98988e39958809c867a87f3752f3 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractProcessor.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractProcessor.java @@ -33,7 +33,12 @@ public abstract class AbstractProcessor implements SliceProcessor { protected SliceProcessorContext context; protected int objectSizeExpansionFactor; - public AbstractProcessor(SliceProcessorContext context) { + /** + * AbstractProcessor + * + * @param context context + */ + protected AbstractProcessor(SliceProcessorContext context) { this.context = context; this.objectSizeExpansionFactor = ConfigCache.getIntValue(ConfigConstants.OBJECT_SIZE_EXPANSION_FACTOR); } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractSliceProcessor.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractSliceProcessor.java index 04ea1e222732fbde5fe984b78736526e65af3e70..f849f143a21b0dddc274d6992606a8519940d7d4 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractSliceProcessor.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractSliceProcessor.java @@ -43,7 +43,13 @@ public abstract class AbstractSliceProcessor extends AbstractProcessor { protected static final Logger log = LogUtils.getBusinessLogger(); protected SliceVo slice; - public AbstractSliceProcessor(SliceVo slice, SliceProcessorContext context) { + /** + * AbstractSliceProcessor + * + * @param slice slice + * @param context context + */ + protected AbstractSliceProcessor(SliceVo slice, SliceProcessorContext context) { super(context); this.slice = slice; } @@ -133,7 +139,7 @@ public abstract class AbstractSliceProcessor extends AbstractProcessor { return sendResult.getRecordMetadata() .offset(); } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); + log.warn("get record offset InterruptedException or ExecutionException"); } return 0; } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractTableProcessor.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractTableProcessor.java index 11088ed4ad3b43127dca4bc09fefa4327912e3aa..929c308d9a01b048dd5f0b1d54d76ca53d2a354e 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractTableProcessor.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/slice/process/AbstractTableProcessor.java @@ -38,12 +38,23 @@ public abstract class AbstractTableProcessor extends AbstractProcessor { protected String table; protected TableMetadata tableMetadata; - public AbstractTableProcessor(String table, SliceProcessorContext context) { + /** + * AbstractTableProcessor + * + * @param table table + * @param context context + */ + protected AbstractTableProcessor(String table, SliceProcessorContext context) { super(context); this.table = table; this.tableMetadata = context.getTableMetaData(table); } + /** + * createTableSliceExtend + * + * @return SliceExtend + */ protected SliceExtend createTableSliceExtend() { SliceExtend tableSliceExtend = new SliceExtend(); tableSliceExtend.setName(table); @@ -52,23 +63,47 @@ public abstract class AbstractTableProcessor extends AbstractProcessor { tableSliceExtend.setStatus(SliceStatus.codeOf(ConfigCache.getEndPoint())); return tableSliceExtend; } + + /** + * initTableMetadata + */ protected void initTableMetadata() { this.tableMetadata = context.getTableMetaData(table); Objects.requireNonNull(tableMetadata, "table metadata " + table + " must not be null"); } + /** + * getFetchSize + * + * @return fetch size + */ protected int getFetchSize() { return ConfigCache.getIntValue(ConfigConstants.FETCH_SIZE); } + /** + * getMaximumTableSliceSize + * + * @return MaximumTableSliceSize + */ protected int getMaximumTableSliceSize() { return ConfigCache.getIntValue(ConfigConstants.MAXIMUM_TABLE_SLICE_SIZE); } + /** + * getQueryDop + * + * @return QueryDop + */ protected int getQueryDop() { return ConfigCache.getIntValue(ConfigConstants.QUERY_DOP); } + /** + * noTableSlice + * + * @return boolean + */ public boolean noTableSlice() { return tableMetadata.getTableRows() < getMaximumTableSliceSize() || getQueryDop() == 1; } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/MysqlResultSetHandler.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/MysqlResultSetHandler.java index 0e5863b51b7e584d1da00a7b030d7e570fcaba34..d4bbb5f3d60aa20f30ae2c537f82a1b12073354d 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/MysqlResultSetHandler.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/MysqlResultSetHandler.java @@ -91,7 +91,7 @@ public class MysqlResultSetHandler extends ResultSetHandler { if (scale > 0 || (precision != 12 && scale == 0)) { return floatingPointNumberToString(resultSet, columnLabel, scale); } else { - return floatNumberToString(resultSet, columnLabel); + return numericFloatNumberToString(resultSet, columnLabel); } } else if (doubleTypeList.contains(mysqlType)) { int precision = rsmd.getPrecision(columnIdx); @@ -99,7 +99,7 @@ public class MysqlResultSetHandler extends ResultSetHandler { if (scale > 0 || (precision != 22 && scale == 0)) { return floatingPointNumberToString(resultSet, columnLabel, scale); } else { - return floatNumberToString(resultSet, columnLabel); + return doubleNumberToString(resultSet, columnLabel); } } else if (isDecimal(mysqlType)) { int precision = rsmd.getPrecision(columnIdx); diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussCsvResultSetHandler.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussCsvResultSetHandler.java index 5225b48c4f5a540cec99ef03b8960975a1c4727f..2fb7eddb34d0a129352782967ac6f401514f49d4 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussCsvResultSetHandler.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussCsvResultSetHandler.java @@ -33,7 +33,7 @@ import java.util.Objects; public class OpenGaussCsvResultSetHandler extends OpenGaussResultSetHandler { @Override - protected String floatNumberToString(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { + protected String numericFloatNumberToString(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { String floatValue = resultSet.getString(columnLabel); if (resultSet.wasNull()) { return NULL; diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussResultSetHandler.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussResultSetHandler.java index 7f8f70567de418b67b44cfc35f3a6f049ba6305a..52b71af4a8fb436e8109642a54b731bf3eb9fb7d 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussResultSetHandler.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OpenGaussResultSetHandler.java @@ -34,7 +34,7 @@ import java.util.concurrent.ConcurrentHashMap; * @since :11 */ public class OpenGaussResultSetHandler extends ResultSetHandler { - protected final Map typeHandlers = new ConcurrentHashMap<>(); + private static final Map typeHandlers = new ConcurrentHashMap<>(); { // byte binary blob @@ -105,8 +105,8 @@ public class OpenGaussResultSetHandler extends ResultSetHandler { */ protected String binaryToString(ResultSet rs, String columnLabel) throws SQLException { String binary = rs.getString(columnLabel); - return rs.wasNull() ? NULL : Objects.isNull(binary) ? NULL : binary.substring(2) - .toUpperCase(Locale.ENGLISH); + return Objects.isNull(binary) ? NULL : binary.substring(2) + .toUpperCase(Locale.ENGLISH); } /** @@ -158,7 +158,7 @@ public class OpenGaussResultSetHandler extends ResultSetHandler { if (precision > scale && scale > 0) { return floatingPointNumberToString(resultSet, columnLabel, scale); } else { - return floatNumberToString(resultSet, columnLabel); + return numericFloatNumberToString(resultSet, columnLabel); } } else if (OpenGaussType.isBigInteger(columnTypeName)) { return numeric0ToString(resultSet, columnLabel); @@ -179,13 +179,13 @@ public class OpenGaussResultSetHandler extends ResultSetHandler { int scale = rsmd.getScale(columnIdx); String columnLabel = rsmd.getColumnLabel(columnIdx); if (isNumericDefault(precision, scale)) { - return floatNumberToString(resultSet, columnLabel); + return numericFloatNumberToString(resultSet, columnLabel); } else if (isNumeric0(precision, scale)) { return numeric0ToString(resultSet, columnLabel); } else if (isNumericFloat(precision, scale)) { return floatingPointNumberToString(resultSet, columnLabel, scale); } else { - return floatNumberToString(resultSet, columnLabel); + return numericFloatNumberToString(resultSet, columnLabel); } } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OracleResultSetHandler.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OracleResultSetHandler.java index 010d2dd15c22d8f9d3475a0c915b8aecde357628..ef809523f79e47b005064df88e71399edbfbf885 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OracleResultSetHandler.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/OracleResultSetHandler.java @@ -91,7 +91,7 @@ public class OracleResultSetHandler extends ResultSetHandler { sb.append(line); } } catch (IOException io) { - log.error("read clobToString error"); + LOG.error("read clobToString error"); } finally { closeBufferedReader(bf); closeReader(reader); @@ -159,7 +159,7 @@ public class OracleResultSetHandler extends ResultSetHandler { bf.close(); } } catch (IOException e) { - log.error("close BufferedReader error"); + LOG.error("close BufferedReader error"); } } @@ -169,7 +169,7 @@ public class OracleResultSetHandler extends ResultSetHandler { reader.close(); } } catch (IOException e) { - log.error("close Reader error"); + LOG.error("close Reader error"); } } } diff --git a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/ResultSetHandler.java b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/ResultSetHandler.java index 9d6dd4d7bebbea2a4c9307f13f6f4fc89219cbd1..8138acc4bdfd0d5769269f754ea3a7ed21204684 100644 --- a/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/ResultSetHandler.java +++ b/datachecker-extract/src/main/java/org/opengauss/datachecker/extract/task/ResultSetHandler.java @@ -20,9 +20,7 @@ import org.opengauss.datachecker.common.util.HexUtil; import org.opengauss.datachecker.common.util.LogUtils; import org.springframework.lang.NonNull; -import java.io.IOException; import java.math.BigDecimal; -import java.sql.Blob; import java.sql.Date; import java.sql.ResultSet; import java.sql.ResultSetMetaData; @@ -48,10 +46,10 @@ import java.util.stream.IntStream; **/ public abstract class ResultSetHandler { private static Map decimalFormatCache = new HashMap<>(); - private static final String decimal_format_pattern_start = "0."; - private static final String decimal_append_zero = "0"; + private static final String DECIMAL_FORMAT_PATTERN_START = "0."; + private static final String DECIMAL_APPEND_ZERO = "0"; - protected static final Logger log = LogUtils.getLogger(); + protected static final Logger LOG = LogUtils.getLogger(); protected static final DateTimeFormatter DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd"); protected static final DateTimeFormatter YEAR = DateTimeFormatter.ofPattern("yyyy"); protected static final DateTimeFormatter TIME = DateTimeFormatter.ofPattern("HH:mm:ss"); @@ -66,11 +64,11 @@ public abstract class ResultSetHandler { protected static final int NUMERIC_PRECISION_0 = 0; protected final boolean supplyZero; - public ResultSetHandler() { + protected ResultSetHandler() { this.supplyZero = false; } - public ResultSetHandler(Boolean supplyZero) { + protected ResultSetHandler(Boolean supplyZero) { this.supplyZero = supplyZero; } @@ -93,15 +91,23 @@ public abstract class ResultSetHandler { columnLabel = rsmd.getColumnLabel(columnIdx); values.put(columnLabel, convert(resultSet, columnIdx, rsmd)); } catch (SQLException ex) { - log.error(" Convert data [{}:{}] {} error ", tableName, columnLabel, ex.getMessage(), ex); + LOG.error(" Convert data [{}:{}] {} error ", tableName, columnLabel, ex.getMessage(), ex); } }); } catch (SQLException ex) { - log.error(" parse data metadata information exception", ex); + LOG.error(" parse data metadata information exception", ex); } return values; } + /** + * fixedLenCharToString + * + * @param rs rs + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ protected String fixedLenCharToString(ResultSet rs, String columnLabel) throws SQLException { return rs.getString(columnLabel); } @@ -118,6 +124,15 @@ public abstract class ResultSetHandler { return putOneResultSetToMap(tableName, rsmd, resultSet, new TreeMap<>()); } + /** + * convert + * + * @param resultSet resultSet + * @param columnIdx columnIdx + * @param rsmd rsmd + * @return result + * @throws SQLException SQLException + */ protected abstract String convert(ResultSet resultSet, int columnIdx, ResultSetMetaData rsmd) throws SQLException; /** @@ -127,7 +142,7 @@ public abstract class ResultSetHandler { * @param columnLabel columnLabel * @param scale scale * @return data of string - * @throws SQLException + * @throws SQLException SQLException */ protected String floatingPointNumberToString(@NonNull ResultSet resultSet, String columnLabel, Integer scale) throws SQLException { @@ -145,9 +160,9 @@ public abstract class ResultSetHandler { } else { String pattern; if (scale == 0) { - pattern = decimal_append_zero; + pattern = DECIMAL_APPEND_ZERO; } else { - pattern = decimal_format_pattern_start + decimal_append_zero.repeat(Math.max(0, scale)); + pattern = DECIMAL_FORMAT_PATTERN_START + DECIMAL_APPEND_ZERO.repeat(Math.max(0, scale)); } scaleFormatter = new DecimalFormat(pattern); decimalFormatCache.put(scale, scaleFormatter); @@ -162,7 +177,7 @@ public abstract class ResultSetHandler { * @param resultSet rs * @param columnLabel columnLabel * @return format - * @throws SQLException + * @throws SQLException SQLException */ protected String floatingPointNumberToString(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { BigDecimal bigDecimal = resultSet.getBigDecimal(columnLabel); @@ -176,8 +191,36 @@ public abstract class ResultSetHandler { return value; } - protected String floatNumberToString(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { - float floatValue = resultSet.getFloat(columnLabel); + /** + * numericFloatNumberToString + * + * @param resultSet resultSet + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ + protected String numericFloatNumberToString(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { + BigDecimal floatValue = resultSet.getBigDecimal(columnLabel); + if (resultSet.wasNull()) { + return NULL; + } + String value = String.valueOf(floatValue.doubleValue()); + if (isScientificNotation(value)) { + return new BigDecimal(value).toPlainString(); + } + return value; + } + + /** + * doubleNumberToString + * + * @param resultSet resultSet + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ + protected String doubleNumberToString(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { + double floatValue = resultSet.getDouble(columnLabel); if (resultSet.wasNull()) { return NULL; } @@ -188,26 +231,64 @@ public abstract class ResultSetHandler { return value; } + /** + * isScientificNotation + * + * @param value value + * @return boolean + */ protected boolean isScientificNotation(String value) { return value.contains("E") || value.contains("e"); } + /** + * numeric0ToString + * + * @param rs rs + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ protected String numeric0ToString(ResultSet rs, String columnLabel) throws SQLException { BigDecimal bigDecimal = rs.getBigDecimal(columnLabel); return Objects.isNull(bigDecimal) ? NULL : bigDecimal.toBigInteger() .toString(); } + /** + * getDateFormat + * + * @param resultSet resultSet + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ protected String getDateFormat(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { final Date date = resultSet.getDate(columnLabel); return Objects.nonNull(date) ? DATE.format(date.toLocalDate()) : NULL; } + /** + * getTimeFormat + * + * @param resultSet resultSet + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ protected String getTimeFormat(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { final Time time = resultSet.getTime(columnLabel); return Objects.nonNull(time) ? TIME.format(time.toLocalTime()) : NULL; } + /** + * getTimestampFormat + * + * @param resultSet resultSet + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ protected String getTimestampFormat(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { final Timestamp timestamp = resultSet.getTimestamp(columnLabel, Calendar.getInstance(TimeZone.getTimeZone("GMT+8"))); @@ -219,31 +300,47 @@ public abstract class ResultSetHandler { TIMESTAMP.format(timestamp.toLocalDateTime()); } + /** + * getYearFormat + * + * @param resultSet resultSet + * @param columnLabel columnLabel + * @return result + * @throws SQLException SQLException + */ protected String getYearFormat(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { final Date date = resultSet.getDate(columnLabel); return Objects.nonNull(date) ? YEAR.format(date.toLocalDate()) : NULL; } - protected String blobToString(Blob blob) throws SQLException, IOException { - if (Objects.isNull(blob)) { - return NULL; - } - return new String(blob.getBytes(1, (int) blob.length())); - } - + /** + * bytesToString + * + * @param bytes bytes + * @return result + */ protected String bytesToString(byte[] bytes) { return HexUtil.byteToHex(bytes); } - protected String trim(@NonNull ResultSet resultSet, String columnLabel) throws SQLException { - final String string = resultSet.getString(columnLabel); - return string == null ? NULL : string.stripTrailing(); - } - + /** + * isNumericFloat + * + * @param precision precision + * @param scale scale + * @return boolean + */ public static boolean isNumericFloat(int precision, int scale) { return precision > NUMERIC_PRECISION_0 && scale > NUMERIC_SCALE_0; } + /** + * isNumeric0 + * + * @param precision precision + * @param scale scale + * @return boolean + */ public static boolean isNumeric0(int precision, int scale) { return precision > NUMERIC_PRECISION_0 && scale == NUMERIC_SCALE_0; } diff --git a/datachecker-extract/src/main/resources/application.yml b/datachecker-extract/src/main/resources/application.yml index 43773e4f62bf42ecc2b85ec31941002c257fbd6c..546365cd304fdd6dff698f157bf7ea7d366b696d 100644 --- a/datachecker-extract/src/main/resources/application.yml +++ b/datachecker-extract/src/main/resources/application.yml @@ -17,6 +17,7 @@ spring: retry-interval-times: 10000 maximum-topic-size: 30 maximum-table-slice-size: 100000 + extend-maximum-pool-size: 3 lifecycle: timeout-per-shutdown-phase: 5 kafka: