迁移指南
以下章节解释了如何迁移到新版本的 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中的类型
我们建议您直接使用这些类型时,检查并更新您的导入。