dbc连接mysql_Spring WebFlux 使用 R2DBC 访问 MySQL

一、介绍

Reactive Programming

响应式编程指的是数据驱动的、异步和并发的编程范式。简而言之,异步数据流编程。对于数据流进行创建、组合、过滤、转换等操作,最终得到所需要的处理和结果。典型的框架有 RxJava、Reactor 等。

WebFlux

WebFlux 是 Spring Framework 提供的新一代 Web 开发框架,区别于 Spring MVC,WebFlux 提供了非阻塞的、基于 Reactive 技术栈的开发框架,以发挥出多核编程的优势。

两者的异同如下:

28bec31ae72c

WebFlux.jpeg

MySQL 支持

直到 Spring Boot 2.3.0.RELEASE,才正式支持基于 r2dbc 的 MySQL 驱动。

本文使用的框架、环境和工具如下:

二、创建工程

本文基于 IntelliJ IDEA 来创建工程,读者也可以自行基于 spring initializr 来创建。

1. 新建工程

点击菜单中【File】→【New】→ 【Project...】,出现以下对话框,选择 Spring initializr:

28bec31ae72c

1.png

说明

JDK: 选择 JDK 8 及以上,建议使用 OpenJDK,以避免法律风险

从 2020.1 开始, IntelliJ IDEA 已经自带有 JDK 下载功能,不需要再独立下载和安装

在 Project SDK 栏中下拉,选择 Download JDK...,出现下面的对话框,选择合适的版本下载即可。

28bec31ae72c

2.png

2. 填写项目信息

点击 Next,进入填写项目信息界面。

28bec31ae72c

3.png

说明

Group 和 Artifact:根据需要修改

Type:保持 Maven Project

3. 选择特性

点击 Next,进入选择特性界面。

28bec31ae72c

4.png

说明

选择以下组件:

Developer Tools

Lombok

Web

Spring Reactive Web

SQL

Spring Data R2DBC

MySQL Driver

4. 设置项目名称和目录界面

点击 Next,进入设置项目名称和目录界面,保持默认即可。

28bec31ae72c

5.png

5. 生成项目

点击 Finish,生成项目,进入 IDE,典型的 Spring Boot 项目结构。

28bec31ae72c

6.png

三、准备 MySQL 数据

在开始写代码之前,先准备好测试用的数据环境。本文使用的是 MySQL 8.0.19。MySQL 社区版的官方下载地址是 MySQL Community Server。

安装 MySQL

如果有现成的 MySQL 环境,请跳过此步骤。

Windows 用户:直接下载 MySQL Installer for Windows,安装即可。

Mac 用户: 使用 homebrew 安装更为便捷,命令如下:

brew install mysql

创建 database

首先,创建 database spring_r2dbc_samples,并创建用户 spring_r2dbc_samples_user,脚本如下:

CREATE DATABASE `spring_r2dbc_samples` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';

CREATE USER `spring_r2dbc_samples_user`@`%` IDENTIFIED WITH mysql_native_password BY 'B55!3Ufhj';

CREATE USER `spring_r2dbc_samples_user`@`localhost` IDENTIFIED WITH mysql_native_password BY 'B55!3Ufhj&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring WebFlux使用R2DBC连接MySQL并集成Flyway,可以按照以下步骤进行操作: 1. 在pom.xml中添加所需的依赖项: ```xml <!-- Spring WebFlux --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <!-- R2DBC MySQL 驱动 --> <dependency> <groupId>dev.miku</groupId> <artifactId>r2dbc-mysql</artifactId> <version>0.8.2.RELEASE</version> </dependency> <!-- Flyway --> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> </dependency> ``` 2. 在application.properties中配置R2DBC连接和Flyway: ```properties # R2DBC MySQL 连接配置 spring.r2dbc.url=r2dbc:mysql://localhost:3306/test spring.r2dbc.username=root spring.r2dbc.password=root # Flyway 配置 flyway.locations=classpath:db/migration flyway.clean-disabled=false flyway.baseline-on-migrate=true ``` 3. 创建数据库迁移脚本文件,存放在`src/main/resources/db/migration`目录下。例如,创建一个名为`V1__init.sql`的脚本文件,用于初始化数据库: ```sql CREATE TABLE `user` ( `id` INT PRIMARY KEY, `name` VARCHAR(50) NOT NULL, `age` INT NOT NULL ); ``` 4. 在Spring Boot应用程序中创建一个数据访问对象(DAO)来处理与数据库的交互。可以使用R2DBC提供的`DatabaseClient`或Spring Data R2DBC来简化数据库访问。 5. 启动应用程序,Flyway将自动执行数据库迁移脚本,初始化数据库。 注意:R2DBC是非阻塞的数据库访问方式,与传统的JDBCSpring Data JPA不同,需要使用异步的方式进行操作。确保代码中的异步操作正确处理。 希望对你有所帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值