问题描述
上下文
我正在寻找支持反应式编程的postgres jdbc驱动程序。我遇到了https://r2dbc.io/,它是jdbc的反应式API的规范。该站点中有两个部分 一个是“客户”,另一个是“司机”
客户部分以
开头R2DBC鼓励库以客户端库的形式提供“人性化”的API。 R2DBC避免在每个驱动程序中实现用户空间功能,而将这些空间留给特定的客户端来实现。
r2dbc的Postrgres实现-https://github.com/pgjdbc/r2dbc-postgresql开头
此实现并非旨在直接使用,而是用作人道客户端库委派给的人的支持实现
我的问题
-
一般来说,客户端和驱动程序之间有什么区别,或者在上述情况下至少有什么区别?
-
这里提到的“人道api”是什么?
解决方法
Spring 5.3中的DatabaseClient
是Spring中的 client 和 human api 的示例。
原始R2dbc规范使用反应流规范定义了API。但是DatabaseClient
基于项目反应器,该项目反应器为开发人员提供了更丰富的API。
比较我的示例connection factories(我必须使用Reactor API封装R2dbc API以使其更易于使用)和database clients。