从 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 的变更:

描述

api.driver

JDBC 驱动程序注册和入口点

api.connection

Snowflake 特定的连接和数据库元数据接口、流传输配置

api.datasource

用于创建和管理连接的 DataSource 实现

api.pooling

需要池化连接的应用程序的连接池数据源

api.resultset

结果集界面、字段元数据、Snowflake 数据类型和异步查询状态

api.auth

身份验证方法定义

api.loader

适用于带进度回调的大容量引入的批量数据加载 API

此外,驱动程序还包括 net.snowflake.client.internal 包中的类,这些类不属于公共 API。这些类由驱动程序内部使用,不适合应用程序开发者使用。使用内部 APIs,风险自担:它们如有更改,恕不另行通知,也不提供向后兼容性保证。

代码从 JDBC 驱动程序 3.x 更改为 JDBC 驱动程序 4.x

驱动程序类名称变更

驱动程序类名称已更改。

之前 (3.x)

之后 (4.x)

com.snowflake.client.jdbc.SnowflakeDriver

net.snowflake.client.api.driver.SnowflakeDriver

数据源创建变更

SnowflakeDataSourceSnowflakeConnectionPoolDataSource 现在是接口。请使用工厂类,而不是直接实例化。

组件

工厂方法

SnowflakeDataSource

SnowflakeDataSourceFactory.createDataSource()

SnowflakeConnectionPoolDataSource

SnowflakeConnectionPoolDataSourceFactory.createConnectionPoolDataSource()

流式上传和下载变更

SnowflakeConnection 接口简化了流操作的重载过程:

  • 上传:

    • uploadStream(stageName, destFileName, inputStream)

    • uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)

    • UploadStreamConfig 选项:destPrefixcompressData`(默认值::codenowrap:`true

  • 下载:

    • downloadStream(stageName, sourceFileName)

    • downloadStream(stageName, sourceFileName, DownloadStreamConfig)

    • DownloadStreamConfig 选项:decompress`(默认值::codenowrap:`false

SnowflakeType 变更

SnowflakeType 枚举已移除。类型值保持不变,但不再支持枚举。

QueryStatusSnowflakeAsyncResultSet 变更

版本 4.0.0 对查询和结果集进行了以下更改:

  • QueryStatus 枚举已替换为 DTO(以前称为 QueryStatusV2)。它携带相同的数据,但采用线程安全的方式。要检索查询状态,请将结果集展开为 SnowflakeAsyncResultSet,并调用 getStatus

  • 结果集上的 getQueryErrorMessage 已移除,但它可以直接从 QueryStatus 上的 getErrorMessage 中检索到。

如果需要表示状态的枚举值,请调用 QueryStatus 上的 getStatus

语言: 中文