此版本仍在开发中,尚未被视为稳定版本。如需使用最新的稳定版本,请使用 Spring Data Relational 4.0.4spring-doc.cadn.net.cn

迁移指南

以下各节说明如何迁移到新版本的 Spring Data R2DBC。spring-doc.cadn.net.cn

从 1.1.x 升级到 1.2.x

Spring Data R2DBC 的开发初衷是为了评估 R2DBC 与 Spring 应用程序的集成效果。 其中一个主要目标是,一旦 R2DBC 支持被证明有用,就将核心支持移入 Spring Framework。 Spring Framework 5.3 引入了一个新模块:Spring R2DBC(spring-r2dbc)。spring-doc.cadn.net.cn

spring-r2dbc 提供了核心的 R2DBC 功能(包括精简版的 DatabaseClient、事务管理器、连接工厂初始化和异常转换),这些功能最初由 Spring Data R2DBC 提供。 1.2.0 版本通过以下各节中所述的若干变更,与 Spring R2DBC 所提供的功能保持一致。spring-doc.cadn.net.cn

Spring R2DBC 的 DatabaseClient 是一个更轻量级的实现,它封装了一个纯面向 SQL 的接口。 你会注意到,用于执行 SQL 语句的方法已从 DatabaseClient.execute(…) 变更为 DatabaseClient.sql(…)。 用于 CRUD 操作的流式 API 已移至 R2dbcEntityTemplate 中。spring-doc.cadn.net.cn

如果你通过日志记录器前缀 org.springframework.data.r2dbc 来记录 SQL 语句,请务必将其更新为 org.springframework.r2dbc(即移除 .data),以指向 Spring R2DBC 组件。spring-doc.cadn.net.cn

弃用

  • 已弃用 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 使用。spring-doc.cadn.net.cn

  • 弃用 o.s.d.r2dbc.connectionfactoryo.s.d.r2dbc.connectionfactory.inito.s.d.r2dbc.connectionfactory.lookup 包。 请改用 Spring R2DBC 提供的对应组件,位于 o.s.r2dbc.connection 包中。spring-doc.cadn.net.cn

  • 弃用 o.s.d.r2dbc.convert.ColumnMapRowMapper。 请改用 o.s.r2dbc.core.ColumnMapRowMapperspring-doc.cadn.net.cn

  • 弃用绑定支持类 o.s.d.r2dbc.dialect.BindingsBindMarkerBindMarkersBindMarkersFactory 及相关类型。 请改用 org.springframework.r2dbc.core.binding 包中的替代类。spring-doc.cadn.net.cn

  • 弃用 BadSqlGrammarExceptionUncategorizedR2dbcException 以及 o.s.d.r2dbc.support 包中的异常转换功能。 Spring R2DBC 目前提供了一种轻量级的异常转换变体(暂无 SPI),可通过 o.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcException 使用。spring-doc.cadn.net.cn

Spring R2DBC 提供的替换项用法

为简化迁移,多个已弃用的类型现在已成为 Spring R2DBC 提供的替代类型的子类型。 Spring Data R2DBC 已更改了若干方法,或引入了接受 Spring R2DBC 类型的新方法。 具体而言,以下类已发生变更:spring-doc.cadn.net.cn

如果您直接使用这些类型,我们建议您检查并更新您的导入语句。spring-doc.cadn.net.cn

重大变更

  • OutboundRow 和语句映射器已从使用 SettableValue 切换为使用 Parameterspring-doc.cadn.net.cn

  • Repository 工厂支持需要使用 o.s.r2dbc.core.DatabaseClient,而不是 o.s.data.r2dbc.core.DatabaseClientspring-doc.cadn.net.cn

依赖变更

要使用 Spring R2DBC,请确保包含以下依赖项:spring-doc.cadn.net.cn