Search in sources :

Example 6 with JdbcClob

use of org.h2.jdbc.JdbcClob in project h2database by h2database.

the class JdbcResultSet method extractObjectOfType.

private <T> T extractObjectOfType(Class<T> type, Value value) throws SQLException {
    if (value == ValueNull.INSTANCE) {
        return null;
    }
    if (type == BigDecimal.class) {
        return type.cast(value.getBigDecimal());
    } else if (type == BigInteger.class) {
        return type.cast(value.getBigDecimal().toBigInteger());
    } else if (type == String.class) {
        return type.cast(value.getString());
    } else if (type == Boolean.class) {
        return type.cast(value.getBoolean());
    } else if (type == Byte.class) {
        return type.cast(value.getByte());
    } else if (type == Short.class) {
        return type.cast(value.getShort());
    } else if (type == Integer.class) {
        return type.cast(value.getInt());
    } else if (type == Long.class) {
        return type.cast(value.getLong());
    } else if (type == Float.class) {
        return type.cast(value.getFloat());
    } else if (type == Double.class) {
        return type.cast(value.getDouble());
    } else if (type == Date.class) {
        return type.cast(value.getDate());
    } else if (type == Time.class) {
        return type.cast(value.getTime());
    } else if (type == Timestamp.class) {
        return type.cast(value.getTimestamp());
    } else if (type == java.util.Date.class) {
        return type.cast(new java.util.Date(value.getTimestamp().getTime()));
    } else if (type == Calendar.class) {
        Calendar calendar = DateTimeUtils.createGregorianCalendar();
        calendar.setTime(value.getTimestamp());
        return type.cast(calendar);
    } else if (type == UUID.class) {
        return type.cast(value.getObject());
    } else if (type == byte[].class) {
        return type.cast(value.getBytes());
    } else if (type == java.sql.Array.class) {
        int id = getNextId(TraceObject.ARRAY);
        return type.cast(value == ValueNull.INSTANCE ? null : new JdbcArray(conn, value, id));
    } else if (type == Blob.class) {
        int id = getNextId(TraceObject.BLOB);
        return type.cast(value == ValueNull.INSTANCE ? null : new JdbcBlob(conn, value, id));
    } else if (type == Clob.class) {
        int id = getNextId(TraceObject.CLOB);
        return type.cast(value == ValueNull.INSTANCE ? null : new JdbcClob(conn, value, id));
    } else if (type == TimestampWithTimeZone.class) {
        return type.cast(value.getObject());
    } else if (DataType.isGeometryClass(type)) {
        return type.cast(value.getObject());
    } else if (type == LocalDateTimeUtils.LOCAL_DATE) {
        return type.cast(LocalDateTimeUtils.valueToLocalDate(value));
    } else if (type == LocalDateTimeUtils.LOCAL_TIME) {
        return type.cast(LocalDateTimeUtils.valueToLocalTime(value));
    } else if (type == LocalDateTimeUtils.LOCAL_DATE_TIME) {
        return type.cast(LocalDateTimeUtils.valueToLocalDateTime(value));
    } else if (type == LocalDateTimeUtils.INSTANT) {
        return type.cast(LocalDateTimeUtils.valueToInstant(value));
    } else if (type == LocalDateTimeUtils.OFFSET_DATE_TIME) {
        return type.cast(LocalDateTimeUtils.valueToOffsetDateTime(value));
    } else {
        throw unsupported(type.getName());
    }
}
Also used : Calendar(java.util.Calendar) Time(java.sql.Time) ValueTime(org.h2.value.ValueTime) ValueDouble(org.h2.value.ValueDouble) ValueDate(org.h2.value.ValueDate) Date(java.sql.Date) Array(java.sql.Array) ValueLong(org.h2.value.ValueLong) BigInteger(java.math.BigInteger) ValueBoolean(org.h2.value.ValueBoolean) UUID(java.util.UUID) NClob(java.sql.NClob) Clob(java.sql.Clob) ValueShort(org.h2.value.ValueShort)

Example 7 with JdbcClob

use of org.h2.jdbc.JdbcClob in project h2database by h2database.

the class JdbcResultSet method getClob.

/**
 * Returns the value of the specified column as a Clob.
 *
 * @param columnLabel the column label
 * @return the value
 * @throws SQLException if the column is not found or if the result set is
 *             closed
 */
@Override
public Clob getClob(String columnLabel) throws SQLException {
    try {
        int id = getNextId(TraceObject.CLOB);
        if (isDebugEnabled()) {
            debugCodeAssign("Clob", TraceObject.CLOB, id, "getClob(" + quote(columnLabel) + ")");
        }
        Value v = get(columnLabel);
        return v == ValueNull.INSTANCE ? null : new JdbcClob(conn, v, id);
    } catch (Exception e) {
        throw logAndConvert(e);
    }
}
Also used : Value(org.h2.value.Value) DbException(org.h2.message.DbException) SQLException(java.sql.SQLException)

Aggregations

SQLException (java.sql.SQLException)6 DbException (org.h2.message.DbException)6 Value (org.h2.value.Value)6 ByteArrayInputStream (java.io.ByteArrayInputStream)2 InputStreamReader (java.io.InputStreamReader)2 SQLClientInfoException (java.sql.SQLClientInfoException)2 Savepoint (java.sql.Savepoint)2 BigInteger (java.math.BigInteger)1 Array (java.sql.Array)1 Clob (java.sql.Clob)1 Date (java.sql.Date)1 NClob (java.sql.NClob)1 Time (java.sql.Time)1 Calendar (java.util.Calendar)1 UUID (java.util.UUID)1 ValueBoolean (org.h2.value.ValueBoolean)1 ValueDate (org.h2.value.ValueDate)1 ValueDouble (org.h2.value.ValueDouble)1 ValueLong (org.h2.value.ValueLong)1 ValueShort (org.h2.value.ValueShort)1