Vertx mysql客户端异步和同步



我需要vertx mysql客户端v4.1.0 java api的帮助。我已经使用了下面的两个代码,但我得到不一致的结果与数字2,因为它返回null,即使有一个数据库记录。这不是阻塞电话吗?

/* 1. asynchronous */
mysql.query(sql).execute(asr -> {
if (asr.succeeded()) {
RowSet<Row> rowset = asr.result();
}else{
//Log and handle error
}
});

/* 2. ??? synchronous */
RowSet<Row> rowset = mysql.query(sql).execute().result();

.reactivex和rawVert。xMySQL客户端库变体是异步的,通过设计提供Handler基类型作为处理SQL查询结果的方式:

io.vertx.sqlclient.Query #执行(Handler处理程序)执行查询

绿色。x仍然为常见模式提供API可移植性,例如JavaFuture和下面的方法签名:

io.vertx.sqlclient.Query # execute ()类似于execute(Handler),但返回异步结果的Future

响应式客户端库端口提供了一个修正的方法以及作为发布者返回查询结果Single:

io.vertx.reactivex.sqlclient.Query # rxExecute ()执行查询

考虑到以上考虑,当调用:

RowSet<Row> rowset = mysql.query(sql).execute().result();

你正在执行SQL查询,然后阻塞当前线程,直到查询结果返回并且Future被解析。

相关内容

  • 没有找到相关文章

最新更新