Java 和 Vertica 数据类型
Vertica Java SDK 将Vertica 的原生数据类型转换为相应的 Java 数据类型。下表列出了 Vertica 数据类型及其相应的 Java 数据类型。
注意
部分 Vertica 数据类型不受支持。设置 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()
会将该子字符串截断为最近似的完整字符。