数据库中客户端程序和驱动程序之间的区别

问题描述

上下文

我正在寻找支持反应式编程的postgres jdbc驱动程序。我遇到了https://r2dbc.io/,它是jdbc的反应式API的规范。该站点中有两个部分 一个是“客户”,另一个是“司机”

客户部分以

开头

R2DBC鼓励库以客户端库的形式提供“人性化”的API。 R2DBC避免在每个驱动程序中实现用户空间功能,而将这些空间留给特定的客户端来实现。

r2dbc的Postrgres实现-https://github.com/pgjdbc/r2dbc-postgresql开头

此实现并非旨在直接使用,而是用作人道客户端库委派给的人的支持实现

我的问题

  1. 一般来说,客户端和驱动程序之间有什么区别,或者在上述情况下至少有什么区别?

  2. 这里提到的“人道api”是什么?

解决方法

Spring 5.3中的DatabaseClient是Spring中的 client human api 的示例。

原始R2dbc规范使用反应流规范定义了API。但是DatabaseClient基于项目反应器,该项目反应器为开发人员提供了更丰富的API。

比较我的示例connection factories(我必须使用Reactor API封装R2dbc API以使其更易于使用)和database clients