java - 如何获取VoltDB中的查询结果

标签 java sql database stored-procedures voltdb

我有一个带有表的 VoltDB 数据库。 我想要获得 VoltDB 存储过程的结果。这是代码

import org.voltdb.*;

public class isola extends VoltProcedure {

 public final SQLStmt getLeast = new SQLStmt(" SELECT codice FROM prova WHERE ID=1;" );


 public VoltTable[] run()  throws VoltAbortException {

   voltQueueSQL(getLeast);
     VoltTable[] queryresults = voltExecuteSQL(); 

   String results= queryresults[0].toString();

   System.out.println("String: \n " + results);


   return voltExecuteSQL();
   }


}

这是输出

String: 
  header size: 14
 status code: -128 column count: 1
(CODICE:INTEGER),  rows -
  2

查询正确结果只有2。

为什么我会得到这个结果?我只想得到 2 个结果。

提前致谢

最佳答案

queryresults[0] 是一个 VoltTable 对象。 toString() 方法将整个对象转换为字符串(不包括数据本身,仅包括元数据)。您需要迭代 VoltTable 中的行(通常这是使用 advanceRow() 完成的)并使用 getLong(0) 或 getLong("CODICE") 检索 codice 列。

此外,最终返回 voltExecuteSQL() 将返回一个空的 VoltTable[],因为排队的 SQL 语句已经执行,并且没有其他任何内容排队。

关于java - 如何获取VoltDB中的查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58355072/

相关文章:

mysql - 通过查询该属性来更新为 NULL 的属性值

php - 即使数据库没有内容也无法删除它

java - Java MVC-我在这里缺少什么吗?

java - 在实现抽象方法的方法中强制注释

sql - 在 SQL Server 2008 中遇到值 1 时重置计数的正确语法是什么?

mysql - SQL表解决方案,计算同一个表中的不同列

java - HMAC解密

java - 如何使用 JAX-RS NewCookie 删除服务器上的 cookie?

sql - 将数据从相关表复制到另一个相关表的最佳方法是什么?

java - 如何从本地计算机连接 CPanel MySql DB