in src/main/java/com/aliyun/odps/jdbc/OdpsPreparedStatement.java [350:396]
public void setObject(int parameterIndex, Object x) throws SQLException {
if (x == null) {
setNull(parameterIndex, Types.NULL);
} else if (x instanceof String) {
setString(parameterIndex, (String) x);
} else if (x instanceof byte[]) {
setBytes(parameterIndex, (byte[]) x);
} else if (x instanceof Short) {
setShort(parameterIndex, (Short) x);
} else if (x instanceof Integer) {
setInt(parameterIndex, (Integer) x);
} else if (x instanceof Long) {
setLong(parameterIndex, (Long) x);
} else if (x instanceof Float) {
setFloat(parameterIndex, (Float) x);
} else if (x instanceof Double) {
setDouble(parameterIndex, (Double) x);
} else if (x instanceof Boolean) {
setBoolean(parameterIndex, (Boolean) x);
} else if (x instanceof Byte) {
setByte(parameterIndex, (Byte) x);
} else if (x instanceof BigDecimal) {
setBigDecimal(parameterIndex, (BigDecimal) x);
} else if (x instanceof Timestamp) {
setTimestamp(parameterIndex, (Timestamp) x);
} else if (x instanceof Time) {
setTime(parameterIndex, (Time) x);
} else if (x instanceof Date) {
setDate(parameterIndex, (Date) x);
} else if (x instanceof java.util.Date) {
parameters.put(parameterIndex, x);
} else if (x instanceof LocalDate) {
parameters.put(parameterIndex, x);
} else if (x instanceof ZonedDateTime) {
parameters.put(parameterIndex, x);
} else if (x instanceof Instant) {
parameters.put(parameterIndex, x);
} else if (x instanceof Varchar) {
setString(parameterIndex, x.toString());
} else if (x instanceof Char) {
setString(parameterIndex, x.toString());
} else if (x instanceof Binary) {
parameters.put(parameterIndex, x);
} else {
throw new SQLException("can not set an object of type: " + x.getClass().getName());
}
}