我正在使用Neo4j JDBC驱动程序2.0.1。
当我通过浏览器运行以下查询时,我得到了正确的数据。
MATCH (u:Person) RETURN u.name, u.lastname
我正在使用NeoJDBC驱动程序执行此语句(我连接到数据库,否则我之前无法创建节点):
public static ResultSet executeCypher(String query)
{
try (Statement stmt = TestUtils.connection.createStatement())
{
return stmt.executeQuery(query);
}
catch (SQLException e)
{
System.out.println(e.getMessage() + "\n\n" + e.getCause().toString() + "\n\n" + e.getErrorCode());
}
}
当我在结果集上进行迭代时,按预期有2个列。但结果集中只有一行。我是根据the minimum viable snippet写的:
//create some users here
//...
//check the database content
ResultSet rs = TestUtils.executeCypher("MATCH (u:Person) RETURN u.name, u.lastname");
while(rs.next())
{
System.out.println(rs.getString("u.name"));
System.out.println("print anything for test purposes");
}
输出:
执行查询:MATCH(u:Person)将u.name作为名称,u.lastname返回 as lastname with params {}启动Apache HTTP客户端
约翰 为测试目的打印任何东西
为什么我只返回一行,尽管它应该返回多行?我在调试时在ResultSet的“data”字段中找到了一些数据(另请参见Michael Hunger's answer here),其中“last”属性为false。所以我想有更多的数据。但我不知道如何提取它。
如何获取ResultSet中的所有数据(使用迭代器)?