Java 和 Vertica 数据类型

Vertica Java SDK 将Vertica 的原生数据类型转换为相应的 Java 数据类型。下表列出了 Vertica 数据类型及其相应的 Java 数据类型。

设置 BINARY、VARBINARY 和 LONG VARBINARY 值

Vertica BINARY、VARBINARY 和 LONG VARBINARY 数据类型将转换为 Java UDx SDK 的 VString 类。您还可以通过 PartitionWriter.setStringBytes() 方法使用 ByteBuffer 对象(或包装在 ByteBuffer 中的字节数组)来设置具有这些数据类型的列的值。有关详细信息,请参阅 PartitionWriter.setStringBytes() 的 Java API UDx 条目。

时间戳和时区

当 SDK 将 Vertica 时间戳转换为 Java 时间戳时,它使用 JVM 的时区。如果 JVM 运行的时区与 Vertica 使用的时区不同,则结果可能会令人困惑。

Vertica 以 UTC 格式将时间戳存储在数据库中。(如果设置了数据库时区,则在查询时完成转换。)为了防止来自 JVM 时区的错误,请将以下代码添加到 UDx 的处理方法中:

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

字符串

Java SDK 包含一个名为 StringUtils 的类,此类可帮助处理字符串数据。getStringBytes() 方法是此类的较有用的功能之一。此方法可以从 String 提取字节并防止创建无效字符串。如果尝试提取会将多字节 UTF-8 字符拆分为多个部分的子字符串,getStringBytes() 会将该子字符串截断为最近似的完整字符。