Spring WebFlux 整合 r2dbc 的增删改查案例

news2024/9/25 1:23:36

无障碍阅读方法

微信公众号关注:张家的小伙子
回复:10205

文章目录

  • 无障碍阅读方法
  • 说明
  • 准备
  • 创建mysql数据库和数据表
  • 创建一个maven项目
  • 添加项目依赖包
  • 创建项目基本目录接口
  • 启动类编写
  • 编写application配置
  • 添加跨域请求配置
  • 创建实体-数据表映射类
  • 创建Dao操作类
  • 编写自己的增删改查接口和实现方法
    • 接口方法定义
    • 接口实现
  • 编写控制器api接口
  • 接口调用测试

说明

本文主要讲述使用Spring Boot3 结合Spring WebFlux 和 r2dbc 访问 mysql数据库做增删改查的基础案例。
与常见的阻塞式Spring MVC 不一样,Spring WebFlux为非阻塞响应式的解决方案,底层支持高并发,效率比Spring MVC 更快,资源占用更少。

准备

  1. 有java8以上的流式编程基础
  2. 有java9以上flow api 以及 Reactor相关知识
  3. idea 编程工具
  4. jdk17
  5. mysql 8
  6. maven
  7. postman

创建mysql数据库和数据表

 -- 创建数据库
drop database if exists threeCloud;
create database threeCloud charset=utf8mb4 collate=utf8mb4_general_ci;

-- 使用此创建的数据库
use threeCloud;

-- 创建用户表
CREATE TABLE `t_user` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `username` varchar(255) NOT NULL COMMENT '用户名称',
  `passwd` varchar(255) NOT NULL COMMENT '密码',
  
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `phone` (`phone`),
  UNIQUE KEY `idcard` (`idcard`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

创建一个maven项目

创建一个maven项目,并创建一个属于本项目的java包存放源码。如下图:
在这里插入图片描述

添加项目依赖包

pom.xml 中加入以下依赖,完整pom.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <!-- 此处用于定义需要的依赖版本号,方便管理 -->
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot-maven-plugin.version>3.3.2</spring-boot-maven-plugin.version>
        <spring-boot-starter-webflux.version>3.3.2</spring-boot-starter-webflux.version>
        <spring-boot-starter-data-r2dbc.version>3.3.2</spring-boot-starter-data-r2dbc.version>
        <spring-boot-starter-data-jdbc.version>3.3.2</spring-boot-starter-data-jdbc.version>
        <lombok.version>1.18.22</lombok.version>
        <r2dbc-mysql.version>1.1.3</r2dbc-mysql.version>
        <fastjson2.version>2.0.47</fastjson2.version>
    </properties>

    <groupId>com.three.test.webflux</groupId>
    <artifactId>three-test-webflux</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <!-- 新增。r2dbc对于mysql的连接驱动  -->
        <dependency>
            <groupId>io.asyncer</groupId>
            <artifactId>r2dbc-mysql</artifactId>
            <version>${r2dbc-mysql.version}</version>
        </dependency>

		 <!-- 新增。spring webflux 的依赖  -->
        <dependency

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1971404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS code 美化之 代码窗背景图 日志2024/8/2

VS code 美化之 代码窗背景图 先看效果: 参考文档: VSCode设置背景图片的两种方式_vscode代码背景-CSDN博客 用插件那个方法我试了,其只会在右侧 侧边栏目出现背景图,可能是我设置不正确吧 而且安装这个插件之后出现弹窗 vscode安装出现问题什么的提示,删除这个拓展就不会有…

时间价值衰减对期权价格有哪些影响?投资必知!

今天带你了解时间价值衰减对期权价格有哪些影响&#xff1f;投资必知&#xff01;期权的时间对期权的价格和价值具有重要影响&#xff0c;这是由于期权的特性和市场机制决定的&#xff0c;其实期权的时间价值是会衰减的。 期权的时间价值&#xff0c;指的是潜在的可能性。 比…

TypeScript(switch判断)

1.switch 语法用法 switch是对某个表达式的值做出判断。然后决定程序执行哪一段代码 case语句中指定的每个值必须具有与表达式兼容的类型 语法switch(表达式){ case 值1&#xff1a; ​ 执行语句块1 break; case 值2&#xff1a; ​ 执行语句块3 break; dfault: //如…

CSDN选择:腾讯cdn缓存跟阿里云cdn对比

在如今互联网迅速发展的时代&#xff0c;内容分发网络&#xff08;CDN&#xff09;变得越来越重要。而在众多CDN提供商中&#xff0c;腾讯云和阿里云的CDN服务无疑是具代表性的两家。那么&#xff0c;这两家的CDN服务究竟有何差异&#xff1f;哪一家更值得选择呢&#xff1f;今…

Python WSGI服务器库之gunicorn使用详解

概要 在部署 Python Web 应用程序时,选择合适的 WSGI 服务器是关键的一步。Gunicorn(Green Unicorn)是一个高性能、易于使用的 Python WSGI HTTP 服务器,适用于各种应用部署场景。Gunicorn 设计简洁,支持多种工作模式,能够有效地管理和处理大量并发请求。本文将详细介绍…

【Canvas与艺术】八角大楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>八角大楼</title><style type"text/css">.cen…

System,InvalidOperationException:未在本地计算机,上注册“Microsoft.ACE,OLEDB.12.0”提供程序。

未在本地计算机,上注册“Microsoft.ACE,OLEDB.12.0”提供程序 问题原因分析解决方案&#xff1a;第一步第二步 问题 本地导入excel没有问题&#xff0c;发布到服务器上出现System,InvalidOperationException:未在本地计算机,上注册“Microsoft.ACE,OLEDB.12.0”提供程序。 原…

tls.go中的流程梳理

文章目录 tls.go中的流程梳理b站博主的 tls 加密过程自己推理的过程(未完待续)发送ClientHello获取ServerHello tls.go中的流程梳理 b站博主的 tls 加密过程 客户端发送ClentHello(tls版本 加密套件 随机数1)服务器发送ServerHello(tls版本 加密套件 随机数2) 这个阶段之后&…

PLM选型指南:如何选择适合自己企业的系统?

导语&#xff1a;在当前的市场竞争中&#xff0c;制造环节的利润逐渐被压缩&#xff0c;企业亟需寻求新的利润增长点来抢占更多市场份额。企业之间的竞争已不再仅仅是产品质量的较量&#xff0c;更是产品创新速度与效率的角逐。由此&#xff0c;研发创新成为企业转型升级的破局…

Swin Transformer和vit

Swin Transformer最为关键的设计在于连续自注意力层间&#xff0c;特征图上的窗划分口实现了半个窗宽的移动。这使得前一层的窗口间可以实现交互和联系&#xff0c;大幅度提升了模型的表达能力。同时在同一窗口内的查询都拥有相同的key序列&#xff0c;使得硬件内存更容易实现大…

【AI冰封挑战】搭档函数计算,“冰”封你的夏日记忆

在 AI 绘画领域&#xff0c;Stable Diffusion、 WebUI、Midjourney 等工具各领风骚&#xff0c;但 ComfyUI 以其独特的自动化工作流机制&#xff0c;自问世以来便迅速崭露头角&#xff0c;成为众多应用开发者和艺术创作者的新宠。它不仅革新了 AI 生图的创作流程&#xff0c;更…

环网自愈型RS485转光纤

一、概述 工业级双环光纤自愈RS485 转 光纤。工业现场总线光通讯中光纤双环网自愈是 一种有效 的高可靠通讯方式 。双环 自愈光 纤 Modem 采用光纤传输技术&#xff0c;专为工业自动化、 SCADA(数据采集及监控)等工业环境的远程数 据通讯而设计&#xff0c;该产品主用实现48…

nvm管理node版本问题处理集合

windows上通过nvm管理node版本&#xff0c;通过nvm安装node&#xff0c;报错了&#xff0c;信息&#xff1a; > Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get > https://nodejs.org/dist/latest/SHASUMS256.txt: dial tcp 104.20.23.46:443: …

手把手教你打包Python项目为whl文件

目录 1&#xff0c;打包whl文件作用 2&#xff0c;单个Python文件打包 1、程序目录 2、程序内容 3、打whl包 4、将whl包导入环境 ​编辑 5、查看效果 6、代码验证 3、多个python文件打包 1、程序目录 ​编辑 2、程序内容 3、打whl包 ​编辑 4、将whl包导入环境 …

C# Unity 面向对象补全计划 泛型

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 1.什么是泛型 泛型&#xff08;Generics&#xff09;是C#中的一个强大特性&#xff0c;允许你编写可以适用于多种数据类型的可重用代码&#xff0c;而不需要重复编写…

Canvas实现截图

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>canvas实现截图功能</title><style>.ca…

大型赛事5G室内无线网络保障方案

大型活动往往才是国家综合实力的重要体现&#xff0c;其无线网络通信保障工作需融合各类新兴的5G业务应用&#xff0c;是一项技术难度高、方案复杂度高的系统工程。尤其在活动人员复杂、现场突发情况多、网络不稳定等情况下&#xff0c;如何形成一套高效、稳定的应急通信解决方…

Maven的补充(在IDEA中配置,创建Maven项目)

目录 选择版本 已经创建项目中配置 点击最测的设置- CtrlAltS 点击左侧的Maven&#xff0c;我们只需要修改我标记的 未创建项目配置 点击自定义 进入设置界面&#xff0c;选择构建&#xff0c;执行&#xff0c;部署---构建工具----Maven 开始创建项目 我们要改变两个地…

java开发环境搭建基础之3----开发工具eclipse中Maven配置

一.背景 公司安排了带徒弟任务&#xff0c;写点基础的环境搭建这些吧。搭建基础开发环境&#xff0c;主要是jdk、eclipse、git、maven、mysql。后续再考虑编写jenkins、nexus、docker、1panel等CI/CD环境搭建。本次主要内容是eclipse中maven环境的配置。我的开发环境&#xff0…

Linux安装 Redis

Linux 安装 Redis 1、下载、解压 下载方式为两种&#xff1a;官网、网盘 官网&#xff1a; 我这里下载了&#xff1a;7.0.5 网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1A_-ZL3x3Xa5YNlcDqyuV_A?pwdg8jh 提取码&#xff1a;g8jh 解压&#xff1a; 将…