1. 前言
在使用R2DBC操作MySQL数据库 一文中初步介绍了r2dbc-mysql的使用。由于借助DatabaseClient操作MySQL,过于初级和底层,不利于开发。今天就利用Spring Data R2DBC来演示Spring 数据存储抽象(Spring Data Repository)风格的R2DBC数据库操作。
请注意:目前Spring Data R2DBC虽然已经迭代了多个正式版,但是仍然处于初级阶段,还不足以运用到生产中。不过未来可期,值得研究学习。
2. Spring Data R2DBC
Spring Data R2DBC提供了基于R2DBC反应式关系数据库驱动程序的流行的Repository抽象。但是这并不是一个ORM框架,你可以把它看做一个数据库访问的抽象层或者R2DBC的客户端程序。它不提供ORM框架具有的缓存、懒加载等诸多特性,但它抽象了数据库和对象的抽象映射关系,具有轻量级、易用性的特点。
2.1 版本对应关系
胖哥总结了截至目前Spring Data R2DBC和Spring Framework的版本对应关系:
Spring Data R2DBC
Spring Framework
1.0.0.RELEASE
5.2.2.RELEASE
1.1.0.RELEASE
5.2.6.RELEASE
1.1.1.RELEASE
5.2.7.RELEASE
1.1.2.RELEASE
5.2.8.RELEASE
一定要注意版本对应关系,避免不兼容的情况。
3. 基础依赖
上次我没有引用R2DBC连接池,这次我将尝试使用它。主要依赖如下 ,这里我还集成了Spring Webflux:
org.springframework.boot
spring-boot-starter-data-r2dbc
io.r2dbc
r2dbc-pool
dev.miku
r2dbc-mysql
org.springframework.boot
spring-boot-starter-data-jdbc
org.springframework.boot
spring-boot-starter-webflux
这里我采用的是 Spring Boot 2.3.2.RELEASE。
4. 配置