遷移指南
以下章節解釋瞭如何遷移到新版本的 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及其支援類ConnectionAccessor、FetchSpec、SqlProvider等。命名引數支援類,如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.connectionfactory、o.s.d.r2dbc.connectionfactory.init和o.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.Bindings、BindMarker、BindMarkers、BindMarkersFactory及相關型別。請使用org.springframework.r2dbc.core.binding中的替代品。 -
廢棄
BadSqlGrammarException、UncategorizedR2dbcException以及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中的型別
我們建議您直接使用這些型別時,檢查並更新您的匯入。