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;
}