Migration von JDBC-Treiber 3.x auf JDBC-Treiber 4.x¶
Der JDBC-Treiber 4.x führt gegenüber dem mehrere JDBC-Treiber 3.x mehrere neue Features und Verbesserungen ein. Dieses Thema bietet einen Überblick über die öffentlichen API-Änderungen und neue Features sowie Informationen zur Migration von JDBC-Treiber 3.x auf JDBC-Treiber 4.x.
Öffentliche API-Übersicht¶
Die öffentliche API des Snowflake-JDBC-Treibers befindet sich unter dem net.snowflake.client.api-Paket (siehe API-Referenz). Die Änderungen an der öffentlichen API zwischen JDBC-Treiber 3.x und JDBC-Treiber 4.x sind in der folgenden Tabelle aufgeführt:
Paket |
Beschreibung |
|---|---|
JDBC-Treiberregistrierung und Einstiegspunkt |
|
Snowflake-spezifische Verbindungs- und Datenbankmetadaten-Schnittstellen, Streamtransfer-Konfiguration |
|
DataSource-Implementierung zum Erstellen und Verwalten von Verbindungen |
|
Verbindungspool-Datenquelle für Anwendungen, die gepoolte Verbindungen benötigen |
|
Resultset-Schnittstellen, Feldmetadaten, Snowflake-Datentypen und asynchroner Abfragestatus |
|
Definitionen der Authentifizierungsmethode |
|
API zum Massenladen von Daten für umfangreiche Datenaufnahme mit Fortschritts-Callbacks |
Zusätzlich enthält der Treiber Klassen im net.snowflake.client.internal-Paket, die nicht Teil der öffentlichen API sind. Diese Klassen werden intern vom Treiber verwendet und sind nicht für die Verwendung durch Anwendungsentwickler vorgesehen. Verwenden Sie die internen APIs auf eigene Gefahr: Sie können ohne Ankündigung und ohne Garantie für Abwärtskompatibilität geändert werden.
Codeänderungen zwischen JDBC-Treiber 3.x und JDBC-Treiber 4.x¶
Namensänderungen der Treiberklasse¶
Der Name der Treiberklasse hat sich geändert.
Vorher (3.x) |
Nachher (4.x) |
|---|---|
|
|
Änderungen bei der Erstellung von Datenquellen¶
SnowflakeDataSource und SnowflakeConnectionPoolDataSource sind jetzt Schnittstellen. Verwenden von Factory-Klassen anstelle direkter Instanziierung.
Komponente |
Factory-Methode |
|---|---|
|
|
|
|
Änderungen des Authentifizierungstyps¶
Der Authentifizierungstyp hat sich von SNOWFLAKE zu SNOWFLAKE_JDBC geändert.
Vorher (3.x) |
Nachher (4.x) |
|---|---|
|
|
Weitere Authentifizierungstypen sind die folgenden:
SNOWFLAKEOKTAEXTERNAL_BROWSEROAUTHSNOWFLAKE_JWTID_TOKENUSERNAME_PASSWORD_MFAOAUTH_AUTHORIZATION_CODEOAUTH_CLIENT_CREDENTIALSPROGRAMMATIC_ACCESS_TOKENWORKLOAD_IDENTITY
Änderungen beim Hoch- und Herunterladen von Streams¶
Die SnowflakeConnection-Schnittstelle hat Überlastungen für Stream-Operationen vereinfacht:
Hochladen:
uploadStream(stageName, destFileName, inputStream)uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)UploadStreamConfig-Optionen:destPrefix,compressData(Standard:true)
Download:
downloadStream(stageName, sourceFileName)downloadStream(stageName, sourceFileName, DownloadStreamConfig)DownloadStreamConfig-Optionen:dekomprimieren(Standard:false)
SnowflakeType-Änderungen¶
Die SnowflakeType-Enumeration wurde entfernt. Werte des Typs bleiben gleich, aber die Enumeration wird nicht mehr unterstützt.
QueryStatus und SnowflakeAsyncResultSet-Änderungen¶
Version 4.0.0 hat folgende Änderungen bezüglich Abfragen und Resultsets vorgenommen:
Die
QueryStatus-Enumeration wurde durch DTO ersetzt (vorher bekannt alsQueryStatusV2). Sie enthält dieselben Daten, jedoch auf thread-sichere Weise. Um den Abfragestatus abzurufen, entpacken Sie Ihr Resultset inSnowflakeAsyncResultSetund rufengetStatusauf.Die
getQueryErrorMessagefür ein Resultset wird entfernt, kann aber direkt ausgetErrorMessagevonQueryStatusabgerufen werden.
Wenn Sie einen Enumerationswert benötigen, der den Status repräsentiert, rufen Sie getStatus für QueryStatus auf.