protected boolean maybeBindPrimitive()

in connectors/rocketmq-connect-jdbc/src/main/java/org/apache/rocketmq/connect/jdbc/binder/DefaultJdbcRecordBinder.java [149:204]


    protected boolean maybeBindPrimitive(
        PreparedStatement statement,
        int index,
        Schema schema,
        Object value
    ) throws SQLException {
        switch (schema.getFieldType()) {
            case INT8:
                statement.setByte(index, Byte.parseByte(value.toString()));
                break;
            case INT32:
                statement.setInt(index, Integer.parseInt(value.toString()));
                break;
            case INT64:
                statement.setLong(index, Long.parseLong(value.toString()));
                break;
            case FLOAT32:
                statement.setFloat(index, Float.parseFloat(value.toString()));
                break;
            case FLOAT64:
                statement.setDouble(index, Double.parseDouble(value.toString()));
                break;
            case BOOLEAN:
                statement.setBoolean(index, Boolean.parseBoolean(value.toString()));
                break;
            case STRING:
                statement.setString(index, (String) value);
                break;
            case BYTES:
                final byte[] bytes;
                if (value instanceof ByteBuffer) {
                    final ByteBuffer buffer = ((ByteBuffer) value).slice();
                    bytes = new byte[buffer.remaining()];
                    buffer.get(bytes);
                } else {
                    bytes = (byte[]) value;
                }
                statement.setBytes(index, bytes);
                break;
            case DATETIME:
                java.sql.Date date;
                if (value instanceof java.util.Date) {
                    date = new java.sql.Date(((java.util.Date) value).getTime());
                } else {
                    date = new java.sql.Date((int) value);
                }
                statement.setDate(
                    index, date,
                    DateTimeUtils.getTimeZoneCalendar(timeZone)
                );
                break;
            default:
                return false;
        }
        return true;
    }