首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不知道列的情况下将"io.vertx.mutiny.sqlclient.Rowset“转换为映射列表?

如何在不知道列的情况下将"io.vertx.mutiny.sqlclient.Rowset“转换为映射列表?
EN

Stack Overflow用户
提问于 2021-02-13 18:16:15
回答 1查看 411关注 0票数 0

我是Quarkus的新手,我正在从表中获取记录,但查询是由第三方用户编写的,所以可能会发生我们不完全了解数据库的情况,因为我们如何才能将行集转换为"List of Map“或任何"Pojo class”或"JsonArray "?

代码语言:javascript
复制
import io.smallrye.mutiny.Uni;
import io.vertx.mutiny.pgclient.PgPool;
import io.vertx.mutiny.sqlclient.RowSet;
import io.vertx.mutiny.sqlclient.Tuple;
import io.vertx.sqlclient.Row;
public Uni<TableRQ> getTableRQ(int ids) {
    try {
        sql = "select * from "+vdnm+"ai_request_parameter where id in ($1)";

        return client.preparedQuery(sql).execute(Tuple.of(ids))
            .onItem().transform(pgRowSet -> {
                JsonArray jsonArray = new JsonArray();
                for (Row row : pgRowSet) {
                    // Here if I know columns than I know how to do it, but I don't know so How can we achieve it?
                }
                return jsonArray;
            });
    } catch (Exception e) {
        return null;
    }

}
EN

回答 1

Stack Overflow用户

发布于 2021-04-05 16:53:47

下面是一些映射到类的示例

代码语言:javascript
复制
// #1
return client.preparedQuery(sql)
        .mapping(row -> {
            User user = new User();
            user.setId(row.getString("id"));
            user.setName(row.getString("name"));
            user.setCreatedAt(row.getLocalDateTime("created_at"));

            return user;
        })
        .execute(Tuple.of(ids))
        .onItem().transformToMulti(users -> Multi.createFrom().iterable(users));

// #2
return client.preparedQuery(sql)
        .execute(Tuple.of(ids))
        .onItem().transformToMulti(rows -> Multi.createFrom().iterable(rows))
        .onItem().transform(this::rowToUser);

有关Quarkus Reactive SQL Clients的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66183974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档