遷移指南

以下章節解釋瞭如何遷移到新版本的 Spring Data R2DBC。

從 1.1.x 升級到 1.2.x

Spring Data R2DBC 的開發旨在評估 R2DBC 與 Spring 應用程式整合的效果。其中一個主要方面是,一旦 R2DBC 支援被證明有用,就將核心支援移入 Spring Framework。Spring Framework 5.3 附帶了一個新模組:Spring R2DBC (spring-r2dbc)。

spring-r2dbc 提供了最初由 Spring Data R2DBC 提供的核心 R2DBC 功能(DatabaseClient 的精簡變體、事務管理器、連線工廠初始化、異常轉換)。1.2.0 版本透過以下章節中概述的幾項更改與 Spring R2DBC 中提供的內容保持一致。

Spring R2DBC 的 DatabaseClient 是一個更輕量級的實現,它封裝了一個純 SQL 導向的介面。您會注意到執行 SQL 語句的方法從 DatabaseClient.execute(…) 更改為 DatabaseClient.sql(…)。CRUD 操作的流暢 API 已移至 R2dbcEntityTemplate

如果您透過日誌字首 org.springframework.data.r2dbc 使用 SQL 語句的日誌記錄,請務必將其更新為 org.springframework.r2dbc(即刪除 .data)以指向 Spring R2DBC 元件。

廢棄

  • 廢棄 o.s.d.r2dbc.core.DatabaseClient 及其支援類 ConnectionAccessorFetchSpecSqlProvider 等。命名引數支援類,如 NamedParameterExpander,已由 Spring R2DBC 的 DatabaseClient 實現封裝,因此我們不提供替代品,因為這首先是內部 API。請使用 o.s.r2dbc.core.DatabaseClient 及其可從 org.springframework.r2dbc.core 獲得的 Spring R2DBC 替代品。基於實體的方法(select/insert/update/delete)可透過 1.1 版本引入的 R2dbcEntityTemplate 獲得。

  • 廢棄 o.s.d.r2dbc.connectionfactoryo.s.d.r2dbc.connectionfactory.inito.s.d.r2dbc.connectionfactory.lookup 包。請使用 Spring R2DBC 的變體,您可以在 o.s.r2dbc.connection 中找到。

  • 廢棄 o.s.d.r2dbc.convert.ColumnMapRowMapper。請改用 o.s.r2dbc.core.ColumnMapRowMapper

  • 廢棄繫結支援類 o.s.d.r2dbc.dialect.BindingsBindMarkerBindMarkersBindMarkersFactory 及相關型別。請使用 org.springframework.r2dbc.core.binding 中的替代品。

  • 廢棄 BadSqlGrammarExceptionUncategorizedR2dbcException 以及 o.s.d.r2dbc.support 中的異常轉換。Spring R2DBC 暫時提供一個沒有 SPI 的精簡異常轉換變體,可透過 o.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcException 獲得。

使用 Spring R2DBC 提供的替代品

為了簡化遷移,幾個廢棄的型別現在是 Spring R2DBC 提供的替代品的子型別。Spring Data R2DBC 已更改了幾個方法或引入了接受 Spring R2DBC 型別的新方法。具體來說,以下類已更改:

  • R2dbcEntityTemplate

  • R2dbcDialect

  • org.springframework.data.r2dbc.query 中的型別

我們建議您直接使用這些型別時,檢查並更新您的匯入。

重大變更

  • OutboundRow 和語句對映器從使用 SettableValue 切換到 Parameter

  • Repository 工廠支援需要 o.s.r2dbc.core.DatabaseClient 而不是 o.s.data.r2dbc.core.DatabaseClient

依賴項變更

要使用 Spring R2DBC,請確保包含以下依賴項:

  • org.springframework:spring-r2dbc

© . This site is unofficial and not affiliated with VMware.