当前位置: 首页 > 知识库问答 >
问题:

vert. x Reactive mySQL客户端查询总是给出空结果

邹修真
2023-03-14

我正在使用java Vert.x项目,并使用Vert.x官方文档的指南,使用反应式MySQL客户端连接到MySQL。当我试图从< code>SELECT查询中检索数据时,它总是给出空结果,即使数据库中有数据。下面给出了用来检索数据的方法。

client.getConnection(conRes -> {
        if(conRes.succeeded()) {
          logger.info("Connected to DB !!!");
          SqlConnection conn = conRes.result();
          String query = "SELECT * FROM table where id ="+id;

          conn.query(query, res-> {
            logger.info("Query Executed for retrieve data, id: "+id);
            if(res.succeeded()) {
              RowSet<Row> result = res.result();

              if(result.size() > 0) { //Also tried with result.rowCount()

                Row rowRes = result.iterator().next();
                stringPromise.complete(rowRes.getString("reference_number"));

              } else {
                logger.error("No data reference number for id: "+id); // Always endup with here
                stringPromise.fail("No data reference number for id: "+id);
              }
              conn.close();
            } else {
              logger.error("Query executed failed due to "+res.cause().getMessage());
              res.cause().printStackTrace();
              stringPromise.fail(res.cause());
              conn.close();
            }
          });
        }
      });

上述方法的连接属性为:

MySQLConnectOptions connectOptions = new MySQLConnectOptions()
      .setPort(3306)
      .setHost(host_ip)
      .setDatabase(db_name)
      .setUser(username)
      .setPassword(password);

    // Pool options
    PoolOptions poolOptions = new PoolOptions()
      .setMaxSize(5);

    client = MySQLPool.pool(vertx, connectOptions, poolOptions);

该方法不显示任何错误,但始终给出o结果,并显示< code>logger.error("没有id的数据参考号:" id ");。这是什么问题,我如何解决这个问题。

共有2个答案

西门京
2023-03-14

您能否尝试通过创建一个小项目或向项目添加测试来创建再现者?你放在这里的代码对我来说似乎很正常。

周苑博
2023-03-14

你的id是字符串吗?因为你必须把它放在撇号之间:

String query = String.format("SELECT * FROM table where id='%s'", id);
 类似资料:
  • 我试图在firebase中的nodesjs服务器(函数部分)中创建一个查询 当我查询电子邮件->时,我得到了正确的文档 当我查询时间戳->时,我得到了正确的文档 但是...当我查询电子邮件和时间戳->时,我没有得到任何文档... 我对它的理解是,当我执行多个“where”时,这就像是一个逻辑,所以如果我在第一个查询和seconds查询中获得相同的记录,我应该在第三个查询中也获得它们 有什么让我怀念

  • 我有下面的应用程序,可以在php中与api进行通信。 我正在使用改装来完成它,使用GET方法,我发送一个int,通过该int返回项目。 MySQL表系列: Mysql表集: 活动正在加载系列项目,单击时,它会将系列id发送到GET,并返回项目,但问题是,它记录了一个错误,但在Mysql端,查询是正确的。 例如,它将“1”作为序列id发送,结果是(我使用echo$query进行检查): 没错,但在A

  • 我在两个特征类中有两个几何,一个名为“HY90299”,另一个名为“hyboxsdo”,这两个几何不相交。 但是当我在oralce中运行空间查询时, “从 HY90299 t,hyboxsdo g 中选择sdo_relate(t.shape,g.shape ,'mask=ANYINTERACT') ” , 我的预言机版本是11g 追加

  • 我在我的项目中使用SQL服务器,我试图在两个时间戳之间检索表中的条目。表的架构如下所示: 我需要获取在特定时间戳和当前时间戳之后添加的条目。为此,我尝试了下面提到的查询: 当在SQL客户机上直接执行这个查询时,我得到了所有预期的结果。但是当我从Java JDBC客户端执行相同的查询时,< code>resultset包含的条目的ADDED_TIME等于parameter1。 下面是客户端的Java

  • 这是我索引中的文档(也可以有几个): 从逻辑上讲,我试图建立这个条件: 我的问题(来自kibana): 我正在与上述范围内的字段的范围查询与上面的其他字段进行比较。但没有得到任何命中!我想检索具有在给定和日期。 在这个领域很缺乏经验,不知道为什么不起作用!请帮助如何修复此查询以做到这一点?

  • #字节跳动# 记录一下今天上午10点~12点字节笔试: 第一题70%(20‘):给两个整数,将其二进制每一位,分别填充到一个新的整数的二进制奇数位和偶数位后输出。依次取低位,按位或 第二题75%(25‘):输入m个不重复的点(一维数轴上),将其中n个点连成一条线段(包括首尾点),输出最短线段的首尾点。先排序,再遍历 第三题80%(25‘):给一组整数,要求不改变原顺序的情况下,将其划分成三组,满足