我正在运行Neo4j服务器(2.0.3),并通过Neo4j JDBC通过Cypher查询访问它。它适用于我迄今为止的大部分用途。
我目前想要运行一个查询,该查询将返回类型为TYPE_SCROLL_SENSITIVE
的结果集,而不是默认的TYPE_FORWARD_ONLY
。
以下是我用来创建Statement并返回ResultSet的代码:
Statement all = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
results = all.executeQuery(query);
但是,当我尝试在ResultSet上使用方法beforeFirst()
时,我得到一个SQLException。这是关闭的ResultSet或TYPE_FORWARD_ONLY
的结果。我使用了isClosed()
方法来确保它没有关闭。
在Neo4j JDBC Driver中,有以下createStatement方法:
@Override
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
{
return debug(new Neo4jStatement(this));
}
因此,从我所看到的,它只是忽略传递给它的类型和并发常量。我意识到并非所有JDBC驱动程序都允许不同类型的结果集。我猜我在问为什么Neo4j没有?如果没有,是否有计划对此实施支持?我觉得它很有用,并认为其他人也可以这样做?