openGauss

开源数据库

openGauss社区官网

开源社区

MogDB数据库支持R2DBC响应式协议访问

彭冲2022-04-12MogDB数据库支持R2DBC响应式协议访问

MogDB 数据库支持 R2DBC 响应式协议访问

本文出处:https://www.modb.pro/db/232405

我们知道使用 JDBC 协议是阻塞式的连接,为了解决这个问题,出现了两个标准,一个是 oracle 提出的 ADBC (Asynchronous Database Access API),另一个就是 Pivotal 提出的 R2DBC (Reactive Relational Database Connectivity)。

目前有部分关系型数据库实现了 R2DBC 协议,包括 mysql、mssql、postgresql 等。MogDB 数据库兼容 PostgreSQL R2DBC Driver,下面通过样例进行测试。

首先快速搭建 MogDB 环境

使用 docker 命令一键搭建

docker run --name mogdb \ --privileged=true \ --detach \ --env GS_PASSWORD=Admin@1234 \ --publish 15400:5432 \ swr.cn-east-3.myhuaweicloud.com/enmotech/mogdb:2.0.1_amd

数据库结构化准备

create database productdb;
\c productdb
create user moguser password 'Admin@1234';
\c productdb moguser

CREATE TABLE product
(
id integer,
description character varying(255),
price numeric,
PRIMARY KEY (id)
);

insert into product values(1,'PostgreSQL',0),
(2,'MogDB',1);

Java 项目工程

参考如下链接:https://github.com/vinsguru/vinsguru-blog-code-samples/tree/master/

配置 MogDB 数据库连接信息

修改工程项目下的 application.properties 文件

java
spring.r2dbc.url=r2dbc:postgresql://***.***.***.***:15400/productdb
spring.r2dbc.username=moguser
spring.r2dbc.password=****** 
运行程序进行测试点击R2dbcApplication文件,Run As运行
然后我们可以打开浏览器,输入接口地址进行测试:
下面是查询所有产品(http://localhost:8080/product/all)
更多R2DBC用法可以参考github上pgjdbc/r2dbc-postgresql