Star

Java客户端获取查询结果问题

java客户端获取查询结果时不是很方便,ResultSet.getRows().get(0).columns获取所有列值的集合nodeValues。再对nodeValues循环,如果列值类型为string,返回的却是byte[] 需要自行转换。且列名和列值没有对应关系,只能循环遍历。不是很方便。代码如下:

       ResultSet node = graphClient.executeQuery("fetch prop on * 1");
        List<String> nodeList = node.getColumns();
        List<ColumnValue> nodeValues = node.getRows().get(0).columns;
        for (int i = 0; i < nodeList.size(); i++) {
            String name =  nodeList.get(i);
            Object value = nodeValues.get(i).getFieldValue();
            String valueType = value.getClass().getTypeName();
            if(valueType.startsWith("byte")){
                value = new String(nodeValues.get(i).getStr());
            }
            System.out.println("name=" + name + ",,value = " + value);
        }

目前的写法是:

        LOGGER.info(String.format("Columns: %s", Joiner.on(" ").join(resultSet.getColumns())));
        for (ResultSet.Result value : resultSet.getResults()) {
            LOGGER.info(String.format("%s, %d, %s", value.getString("Friend"),
                    value.getInteger("Age"),
                    value.getString("Gender")));
        }

请问你这种写法是什么版本的Java客户端呢,目前在maven里能搜到的就只有1.0.0,而这个版本中resultSet并没有getResults()的方法。
我的maven引用如下:
360截图16751027252445
resultSet调用如下:

java-client没有更新,先用源码构建了

对 这是最新版本的改进 还没发布新版本

新版感觉也不方便啊,java client能不能直接转为map?或者python client里支持转为pandas.dataframe

是 result set 转换为map 嘛?

是的

也许可以让ResultSet支持一下迭代器接口?

你是希望取整一列吗?

浙ICP备20010487号