public static Object convertValue(final Object value, final Class<?> convertType) throws SQLFeatureNotSupportedException {
        ShardingSpherePreconditions.checkNotNull(convertType, () -> new SQLFeatureNotSupportedException("Type can not be null"));
        if (null == value) {
            return convertNullValue(convertType);
        }
        if (value.getClass() == convertType) {
            return value;
        }
        if (value instanceof LocalDateTime) {
            return convertLocalDateTimeValue((LocalDateTime) value, convertType);
        }
        if (value instanceof Timestamp) {
            return convertTimestampValue((Timestamp) value, convertType);
        }
        if (URL.class.equals(convertType)) {
            return convertURL(value);
        }
        if (value instanceof Number) {
            return convertNumberValue(value, convertType);
        }
        if (value instanceof Date) {
            return convertDateValue((Date) value, convertType);
        }
        if (value instanceof byte[]) {
            return convertByteArrayValue((byte[]) value, convertType);
        }
        if (boolean.class.equals(convertType)) {
            return convertBooleanValue(value);
        }
        if (String.class.equals(convertType)) {
            return value.toString();
        }
        try {
            return convertType.cast(value);
        } catch (final ClassCastException ignored) {
            throw new SQLFeatureNotSupportedException("getObject with type");
        }
    }
@Test
    void assertConvertBooleanValue() throws SQLException {
        assertFalse((boolean) ResultSetUtils.convertValue("-2", boolean.class));
        assertTrue((boolean) ResultSetUtils.convertValue("1", boolean.class));
    }