Java Vertx3-从JDBC连接返回值?(sql数据库)。
我有一个带有返回“config”对象的单个方法的接口 我想在Android和Vertx3环境中使用这个界面Java Vertx3-从JDBC连接返回值?(sql数据库)。,java,asynchronous,jdbc,vert.x,Java,Asynchronous,Jdbc,Vert.x,我有一个带有返回“config”对象的单个方法的接口 我想在Android和Vertx3环境中使用这个界面 Config retrieveConfig(String authCreds); 我试图在vertx程序中实现这一点,利用它的JDBC客户机,但我遇到了一些问题 jdbcClient.getConnection(sqlConnResult -> //checks for success sqlConnResult.result().query(selectStatement,
Config retrieveConfig(String authCreds);
我试图在vertx程序中实现这一点,利用它的JDBC客户机,但我遇到了一些问题
jdbcClient.getConnection(sqlConnResult ->
//checks for success
sqlConnResult.result().query(selectStatement, rows -> {
//get result here, want to return it as answer to interface.
//seems this is a "void" method in this scope.
});
使用Vertx异步代码也可以使用此接口吗?在
异步编程
中,您不能将值返回给调用者,因为这将是一个阻塞调用-异步编程要删除的主要内容之一。这就是为什么在Vertx
中,许多方法返回This
或void
各种范例作为替代方案存在:
广泛使用了Vert.x
接口,其中Handler
方法将与结果一起执行Handler(T result)
还支持Vert.x 3
。这将允许您返回一个Rx Observable
,一旦可观察的
完成,它将向异步任务
发送结果订户
- 此外,始终有一个返回
的选项,一旦异步任务完成,该选项将包含结果。尽管Future
实际上并不经常使用它Vert.x
阻塞和非阻塞api创建这样的公共接口Vertx
提供了一种简单易行的方法,但我认为在您的情况下,这不是一个好的解决方案
就我个人而言,我会看一看。有对的支持,并且在Vertx 3
中得到了很好的采用,几乎每个API调用都有一个
从:
Config retrieveConfig(String authCreds);
到
Observable retrieveConfig(字符串authCreds);
将使您能够拥有一个通用界面,并使其在Android
和Vert.x
上工作。它还提供了一个额外的好处,即不必陷入Rx
试图避免的回调地狱
希望这有帮助,在不改变底层系统的情况下实现RxJava/反应式实现是否可能?你能混合吗?@Zerkz我不太明白。也许你可以用例子更新你的问题,或者开始一个新的问题并在这里发布链接。nm,我想我能够回答它。谢谢你的帮助,威尔!作为一个更新,我能够使用Observable找到一个解决方案,然后将其转换为阻塞Observable(使其同步)。
Observable<Config> retrieveConfig(String authCreds);