从 JDBC 驱动程序 3.x 迁移到 JDBC 驱动程序 4.x¶
相比 JDBC 驱动程序 3.x,JDBC 驱动程序 4.x 推出了多项新功能和改进。本主题概述了公共 API 的变更和新功能,还提供了如何从 JDBC 驱动程序 3.x 迁移到 JDBC 驱动程序 4.x 的相关信息。
公共 API 概述¶
Snowflake JDBC 驱动程序公共 API 位于 net.snowflake.client.api 包下(请参阅 API 参考)。下表列出了 JDBC 驱动程序 3.x 和 JDBC 驱动程序 4.x 之间公共 API 的变更:
包 |
描述 |
|---|---|
JDBC 驱动程序注册和入口点 |
|
Snowflake 特定的连接和数据库元数据接口、流传输配置 |
|
用于创建和管理连接的 DataSource 实现 |
|
需要池化连接的应用程序的连接池数据源 |
|
结果集界面、字段元数据、Snowflake 数据类型和异步查询状态 |
|
身份验证方法定义 |
|
适用于带进度回调的大容量引入的批量数据加载 API |
此外,驱动程序还包括 net.snowflake.client.internal 包中的类,这些类不属于公共 API。这些类由驱动程序内部使用,不适合应用程序开发者使用。使用内部 APIs,风险自担:它们如有更改,恕不另行通知,也不提供向后兼容性保证。
代码从 JDBC 驱动程序 3.x 更改为 JDBC 驱动程序 4.x¶
驱动程序类名称变更¶
驱动程序类名称已更改。
之前 (3.x) |
之后 (4.x) |
|---|---|
|
|
数据源创建变更¶
SnowflakeDataSource 和 SnowflakeConnectionPoolDataSource 现在是接口。请使用工厂类,而不是直接实例化。
组件 |
工厂方法 |
|---|---|
|
|
|
|
流式上传和下载变更¶
SnowflakeConnection 接口简化了流操作的重载过程:
上传:
uploadStream(stageName, destFileName, inputStream)uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)UploadStreamConfig选项:destPrefix、compressData`(默认值::codenowrap:`true)
下载:
downloadStream(stageName, sourceFileName)downloadStream(stageName, sourceFileName, DownloadStreamConfig)DownloadStreamConfig选项:decompress`(默认值::codenowrap:`false)
SnowflakeType 变更¶
SnowflakeType 枚举已移除。类型值保持不变,但不再支持枚举。
QueryStatus 和 SnowflakeAsyncResultSet 变更¶
版本 4.0.0 对查询和结果集进行了以下更改:
QueryStatus枚举已替换为 DTO(以前称为QueryStatusV2)。它携带相同的数据,但采用线程安全的方式。要检索查询状态,请将结果集展开为SnowflakeAsyncResultSet,并调用getStatus。结果集上的
getQueryErrorMessage已移除,但它可以直接从QueryStatus上的getErrorMessage中检索到。
如果需要表示状态的枚举值,请调用 QueryStatus 上的 getStatus。