跳到主要内容

8.1 Java/JDBC 类型关系

在没有明确指定 JDBC 类型时,dbVisitor 会根据下面表格中的映射自动选择 Java 类型对应的 JDBC 类型作为参数。

默认映射表

Java 类型JDBC 类型
java.lang.Boolean, booleanTypes.BIT
java.lang.Byte, byteTypes.TINYINT
java.lang.Short, short, java.time.Year, java.time.MonthTypes.SMALLINT
java.lang.Integer, intTypes.INTEGER
java.lang.Long, long, java.math.BigIntegerTypes.BIGINT
java.lang.Float, floatTypes.FLOAT
java.lang.Double, doubleTypes.DOUBLE
java.lang.Character, charTypes.CHAR
java.sql.Date, java.time.LocalDate, oracle.sql.DATETypes.DATE
java.sql.Time, java.time.LocalTimeTypes.TIME
java.util.Date, java.sql.Timestamp, java.time.Instant, java.time.LocalDateTime, java.time.chrono.JapaneseDate, oracle.sql.TIMESTAMPTypes.TIMESTAMP
java.time.OffsetDateTime, java.time.ZonedDateTime, oracle.sql.TIMESTAMPTZ, oracle.sql.TIMESTAMPLTZTypes.TIMESTAMP_WITH_TIMEZONE
java.time.OffsetTimeTypes.TIME_WITH_TIMEZONE
java.lang.String, java.time.YearMonthTypes.VARCHAR
java.math.BigDecimalTypes.DECIMAL
java.io.Reader, oracle.jdbc.OracleClobTypes.CLOB
java.io.InputStream, oracle.jdbc.OracleBlobTypes.BLOB
oracle.jdbc.OracleNClobTypes.NCLOB
java.lang.Byte[], byte[]Types.VARBINARY
java.net.URL, java.net.URITypes.DATALINK
java.lang.Object[]Types.ARRAY
java.lang.ObjectTypes.JAVA_OBJECT

byte[] 是基本类型数组,Byte[] 是包装类型数组;通用 JDBC 参数绑定默认都将它们作为二进制值,而不是数据库 ARRAY。特定适配器若依据目标字段赋予其他语义,会在对应数据源文档中明确说明。例如 Milvus 会根据向量字段 schema 区分数值序列、打包编码和 Int8 分量。

延伸阅读

上表说明参数绑定时的默认类型选择,不代表各数据库都支持对应的存储类型。数据库列类型、JDBC 结果类型、可用 Java 映射及具体使用限制,请参阅各数据源的类型支持文档:

类型处理器的匹配规则与内置实现见基础类型处理器