日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

dbc数据库 与 mysql_使用反应式关系数据库连接规范R2DBC操作MySQL数据库

發布時間:2025/3/20 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dbc数据库 与 mysql_使用反应式关系数据库连接规范R2DBC操作MySQL数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 簡介

三月份已經介紹過R2DBC,它是一種異步的、非阻塞的關系式數據庫連接規范。盡管一些NoSQL數據庫供應商為其數據庫提供了反應式數據庫客戶端,但對于大多數項目而言,遷移到NoSQL并不是一個理想的選擇。這促使了一個通用的響應式關系數據庫連接規范的誕生。 作為擁有龐大用戶群的關系式數據庫MySQL也有了反應式驅動,不過并不是官方的。但是Spring官方將其納入了依賴池,說明該類庫的質量并不低。所以今天就嘗嘗鮮,試一下使用R2DBC連接MySQL。

2. 環境依賴

基于Spring Boot 2.3.1和Spring Data R2DBC,還有反應式Web框架Webflux,同時也要依賴r2dbc-mysql庫,所有的Maven依賴為:

dev.miku

r2dbc-mysql

org.springframework.boot

spring-boot-starter-data-r2dbc

org.springframework.boot

spring-boot-starter-data-jdbc

org.springframework.boot

spring-boot-starter-webflux

MySQL版本為5.7,沒有測試其它版本。

3. R2DBC配置

所有的R2DBC自動配置都在org.springframework.boot.autoconfigure.data.r2dbc包下,如果要配置MySQL必須針對性的配置對應的連接工廠接口ConnectionFactory,當然也可以通過application.yml配置。個人比較喜歡JavaConfig。

@Bean

ConnectionFactory connectionFactory() {

return MySqlConnectionFactory.from(MySqlConnectionConfiguration.builder()

.host("127.0.0.1")

.port(3306)

.username("root")

.password("123456")

.database("database_name")

// 額外的其它非必選參數省略

.build());

}

當ConnectionFactory配置好后,就會被注入DatabaseClient 對象。該對象是非阻塞的,用于執行數據庫反應性客戶端調用與反應流背壓請求。我們可以通過該接口反應式地操作數據庫。

4. 編寫反應式接口

我們先創建一張表并寫入一些數據:

create table client_user

(

user_id varchar(64) not null comment '用戶唯一標示' primary key,

username varchar(64) null comment '名稱',

phone_number varchar(64) null comment '手機號',

gender tinyint(1) default 0 null comment '0 未知 1 男 2 女 '

)

對應的實體為:

package cn.felord.r2dbc.config;

import lombok.Data;

/**

* @author felord.cn

*/

@Data

public class ClientUser {

private String userId;

private String username;

private String phoneNumber;

private Integer gender;

}

然后我們編寫一個Webflux的反應式接口:

package cn.felord.r2dbc.config;

import org.springframework.data.r2dbc.core.DatabaseClient;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import reactor.core.publisher.Flux;

import reactor.core.publisher.Mono;

import javax.annotation.Resource;

/**

* The type User controller.

*

* @author felord.cn

* @since 17 :07

*/

@RestController

@RequestMapping("/user")

public class UserController {

@Resource

private DatabaseClient databaseClient;

/**

* 查詢

*

* @return 返回Flux序列 包含所有的ClientUser

*/

@GetMapping("/get")

public Flux clientUserFlux() {

return databaseClient.execute("select * from client_user").as(ClientUser.class)

.fetch()

.all();

}

/**

* 響應式寫入.

*

* @return Mono對象包含更新成功的條數

*/

@GetMapping("/add")

public Mono insert() {

ClientUser clientUser = new ClientUser();

clientUser.setUserId("34345514644");

clientUser.setUsername("felord.cn");

clientUser.setPhoneNumber("3456121");

clientUser.setGender(1);

return databaseClient.insert().into(ClientUser.class)

.using(clientUser)

.fetch().rowsUpdated();

}

}

調用接口就能獲取到期望的數據結果。

5. 總結

乍一看R2DBC并沒有想象中的那么難,但是間接的需要了解Flux、Mono等抽象概念。同時目前來說如果不和Webflux框架配合也沒有使用場景。就本文的MySQL而言,R2DBC驅動還是社區維護(不得不說PgSQL就做的很好)。

然而需要你看清的是反應式才是未來。如果你要抓住未來就需要現在就了解一些相關的知識。這讓我想起五年前剛剛接觸Spring Boot的感覺。另外這里有一份Spring官方關于R2DBC的PPT,也是讓你更好了解R2DBC的權威資料。可以關注:碼農小胖哥 回復r2dbc獲取。

關注公眾號:Felordcn 獲取更多資訊

總結

以上是生活随笔為你收集整理的dbc数据库 与 mysql_使用反应式关系数据库连接规范R2DBC操作MySQL数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 调教撅屁股啪调教打臀缝av | 领导揉我胸亲奶揉下面 | 亚州av片 | 欧美黄色一级网站 | 三级网站在线播放 | 国产一级做a爰片在线看免费 | 国产成人精品一区二区三区免费 | 五月婷婷综合激情网 | 强公把我次次高潮hd | 欧美日韩免费做爰视频 | 婷婷久久精品 | 可以免费观看的毛片 | 亚洲激情二区 | 久久免费影院 | 国产精品一区二区无线 | 五月婷婷在线观看视频 | 亚欧洲精品视频 | 琪琪午夜伦理影院7777 | 国产精品九九 | 大j8黑人w巨大888a片 | 成人免费观看视频 | 国产欧美一区二区三区国产幕精品 | a人片| 亚州精品毛片 | 中文字幕在线免费观看视频 | 欧美精品少妇 | 亚洲国产成人一区二区 | 91精品国产综合久久精品图片 | 成人午夜在线视频 | а√天堂8资源中文在线 | 国产老女人乱淫免费可以 | 婷婷成人综合 | 欧美三区在线 | 欧美色图视频在线 | eeuss一区| 久久久久久国产 | 日韩二区三区 | 中文欧美日韩 | 精品无码一区二区三区电影桃花 | 波多野结衣调教 | 欧美日韩成人 | 三级全黄做爰龚玥菲在线 | 国产一级大片 | 日韩视频在线观看一区二区三区 | 欧美人与按摩师xxxx | 无码视频一区二区三区 | 黄网站色视频免费观看 | 亚洲综合欧美 | 日韩a视频 | 久久精品网 | 午夜精品一区二区在线观看 | 国产白丝袜美女久久久久 | 99er热精品视频 | 精品一区二区视频在线观看 | 欧美日韩一区二区三区电影 | 国产精品久久久久久久久久久久久久久久久久 | 激情小视频在线观看 | 九九九九久久久久 | 欧美成年人视频 | 国产精品日韩欧美一区二区三区 | 3d动漫啪啪精品一区二区中文字幕 | 久久精品久久精品久久 | 久久露脸国语精品国产 | 人人爱超碰 | 91精东传媒理伦片在线观看 | www.天天操| 亚洲综合色av | 日批视频在线 | 欧美精品一区二区三区久久 | 中文在线一区二区 | 亚洲精品污一区二区三区 | 欧美大尺度做爰啪啪床戏明星 | 国产精品自拍在线观看 | 草草视频网站 | 国产视频在线一区二区 | 欧美v在线 | 国产区在线 | 在线一区视频 | 亚洲系列 | 九九热在线精品 | 欧美日韩亚洲不卡 | 国产精品午夜无码专区 | 99人妻少妇精品视频一区 | 色老头在线观看 | 国产精品我不卡 | 人人人爽| 欧美三级视频 | 毛片大全免费看 | 九九热视频精品在线观看 | 大黄毛片| 3d动漫精品啪啪一区二区三区免费 | 久久小草| 91香蕉一区二区三区在线观看 | 91午夜在线观看 | 青青草免费在线视频 | 黄视频免费观看 | 亚洲v欧美| 91成人午夜 | аⅴ天堂中文在线网 |