7.1 Basic Type Handlers
Hint
This article is generated by AI translation.
Basic Type handlers
dbVisitor ships many handlers. Naming follows three patterns:
<JavaTypeName>TypeHandleror<JdbcTypeName>TypeHandler<JdbcTypeName>As<JavaTypeName>TypeHandleror<OneType>As<AnotherType>TypeHandler<xxx>TypeHandler
Combo types (highest priority)
info
Both Java and JDBC types must match to select a handler in this table.
| JDBC type | Java type | Handler |
|---|---|---|
| CHAR, VARCHAR, LONGVARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR | java.time.MonthDay | StringAsMonthDayTypeHandler |
| TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, DOUBLE, REAL, NUMERIC, DECIMAL | java.time.MonthDay | IntegerAsMonthDayTypeHandler |
| CHAR, VARCHAR, LONGVARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR | java.time.YearMonth | StringAsYearMonthTypeHandler |
| TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, DOUBLE, REAL, NUMERIC, DECIMAL | java.time.YearMonth | IntegerAsYearMonthTypeHandler |
| CHAR, VARCHAR, LONGVARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR | java.time.Year | StringAsYearTypeHandler |
| TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, DOUBLE, REAL, NUMERIC, DECIMAL | java.time.Year | IntegerAsYearTypeHandler |
| CHAR, VARCHAR, LONGVARCHAR, NCHAR, NVARCHAR, LONGNVARCHAR | java.time.Month | StringAsMonthTypeHandler |
| TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, DOUBLE, REAL, NUMERIC, DECIMAL | java.time.Month | IntegerAsMonthTypeHandler |
| CHAR, VARCHAR, LONGVARCHAR, DATALINK, ROWID | java.lang.String | StringTypeHandler |
| NCHAR, NVARCHAR, LONGNVARCHAR | java.lang.String | NStringTypeHandler |
| CLOB | java.lang.String | ClobAsStringTypeHandler |
| NCLOB | java.lang.String | NClobAsStringTypeHandler |
| SQLXML | java.lang.String | SqlXmlTypeHandler |
| CHAR, VARCHAR, LONGVARCHAR | java.io.Reader | StringAsReaderTypeHandler |
| NCHAR, NVARCHAR, LONGNVARCHAR | java.io.Reader | NStringAsReaderTypeHandler |
| CLOB | java.io.Reader | ClobAsReaderTypeHandler |
| NCLOB | java.io.Reader | NClobAsReaderTypeHandler |
| SQLXML | java.io.Reader | SqlXmlAsReaderTypeHandler |
| BINARY, VARBINARY, LONGVARBINARY, ROWID | byte[] | BytesTypeHandler |
| BLOB | byte[] | BlobAsBytesTypeHandler |
| BINARY, VARBINARY, LONGVARBINARY, ROWID | java.lang.Byte[] | BytesAsBytesWrapTypeHandler |
| BLOB | java.lang.Byte[] | BlobAsBytesWrapTypeHandler |
| BINARY, VARBINARY, LONGVARBINARY | java.io.InputStream | BytesAsInputStreamTypeHandler |
| BLOB | java.io.InputStream | BlobAsInputStreamTypeHandler |
| SQLXML | java.io.InputStream | SqlXmlAsInputStreamTypeHandler |
| ARRAY | java.lang.Object | ArrayTypeHandler |
| DATALINK | java.net.URI | StringAsUriTypeHandler |
| DATALINK | java.net.URL | StringAsUrlTypeHandler |
Single types (second priority)
info
Matching either the Java type or the JDBC type is enough to activate a handler in this table.
| JDBC type | Java type | Handler |
|---|---|---|
| BIT, BOOLEAN | java.lang.Boolean, boolean | BooleanTypeHandler |
| TINYINT | java.lang.Byte, byte | ByteTypeHandler |
| SMALLINT | java.lang.Short, short | ShortTypeHandler |
| INTEGER | java.lang.Integer, int | IntegerTypeHandler |
| BIGINT | java.lang.Long, long | LongTypeHandler |
| FLOAT | java.lang.Float, float | FloatTypeHandler |
| DOUBLE | java.lang.Double, double | DoubleTypeHandler |
| REAL, NUMERIC, DECIMAL | java.math.BigDecimal | BigDecimalTypeHandler |
| - | java.lang.Number | NumberTypeHandler (只支持数据读取) |
| CHAR | java.lang.Character, char | StringAsCharTypeHandler |
| NCHAR | - | NStringAsCharTypeHandler |
| VARCHAR, LONGVARCHAR, ROWID | java.lang.String | StringTypeHandler |
| NVARCHAR, LONGNVARCHAR | - | NStringTypeHandler |
| CLOB | java.sql.Clob | ClobAsStringTypeHandler |
| NCLOB | java.sql.NClob | NClobAsStringTypeHandler |
| TIMESTAMP | java.util.Date | SqlTimestampAsDateTypeHandler |
| DATE | - | SqlDateAsDateHandler |
| - | java.sql.Date | SqlDateTypeHandler |
| - | java.sql.Timestamp | SqlTimestampTypeHandler |
| - | java.sql.Time | SqlTimeTypeHandler |
| TIME | - | SqlTimeAsDateTypeHandler |
| - | java.time.Instant | SqlTimestampAsInstantTypeHandler |
| - | java.time.chrono.JapaneseDate | JapaneseDateAsSqlDateTypeHandler |
| - | java.time.Year | SqlTimestampAsYearTypeHandler |
| - | java.time.Month | SqlTimestampAsMonthTypeHandler |
| - | java.time.YearMonth | SqlTimestampAsYearMonthTypeHandler |
| - | java.time.MonthDay | SqlTimestampAsMonthDayTypeHandler |
| - | java.time.LocalDate | LocalDateTimeAsLocalDateTypeHandler |
| - | java.time.LocalTime | LocalTimeTypeHandler |
| - | java.time.LocalDateTime | LocalDateTimeTypeHandler |
| - | java.time.ZonedDateTime | OffsetDateTimeAsZonedDateTimeTypeHandler |
| TIMESTAMP_WITH_TIMEZONE | java.time.OffsetDateTime | OffsetDateTimeTypeHandler |
| TIME_WITH_TIMEZONE | java.time.OffsetTime | OffsetTimeTypeHandler |
| - | java.math.BigInteger | BigIntegerTypeHandler |
| - | java.io.Reader | StringAsReaderTypeHandler |
| - | java.io.InputStream | BytesAsInputStreamTypeHandler |
| - | java.lang.Byte[] | BytesAsBytesWrapTypeHandler |
| BINARY, VARBINARY, LONGVARBINARY | byte[] | BytesTypeHandler |
| BLOB | java.sql.Blob | BlobAsBytesTypeHandler |
| DATALINK | java.net.URI | StringAsUriTypeHandler |
| - | java.net.URL | StringAsUrlTypeHandler |
| JAVA_OBJECT | - | ObjectTypeHandler |
| ARRAY | java.lang.Object[] | ArrayTypeHandler |
| SQLXML | - | SqlXmlTypeHandler |
| OTHER | java.lang.Object | UnknownTypeHandler |