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

java中的cypher查询:获取和迭代resultset节点

汲睿
2023-03-14
public class BooksManager {
    
    //private final Driver driver;
    private final ConnectionConfig config;
    private Connection con;
    public BooksManager(ConnectionConfig config) {
        this.config = config;
        this.con = null;
        try {
            this.con = DriverManager.getConnection("jdbc:neo4j:"+ config.getFullUrl(), "neo4j", config.getPassword());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

public void viewBook(){
    booksQuery = "USE eindb MATCH (b:Book) RETURN b LIMIT 25";

    PreparedStatement stmt = null;
    try {
        stmt = con.prepareStatement(booksQuery);
    } catch (SQLException e1) {
        e1.printStackTrace();
    }
        
    ResultSet rs = null;
        
    try {
        rs = stmt.executeQuery();
    } catch (SQLException e2) {
        e2.printStackTrace();
    }
        
    try {
        while (rs.next()) {
            
            Object bookJustObject = rs.getObject("b");
            System.out.println("b: "+bookJustObject);
            //TODO get all fields from object, how? 
        }

    } catch (SQLException e1) {
        e1.printStackTrace();
    }
}


我执行了成功的查询,返回了一些书籍。使用jdbc连接运行neo4j数据库的查询。我不明白如何列出对象“b”中的所有字段,该对象表示图形数据库中的一本书。

共有1个答案

扶珂
2023-03-14

这取决于你想要什么。一些建议:

返回一组特定的属性

RETURN b.title AS title, b.foo AS foo

要将属性作为映射返回,请执行以下操作:

RETURN properties(b) AS map

返回属性并添加节点id。

RETURN apoc.map.setKey(properties(b),'id',id(b)) AS mapWithId

返回所有属性/键的列表

MATCH (b:Book) 
UNWIND keys(b) AS key
RETURN DISTINCT key
 类似资料:
  • 问题内容: 我有一个用ResultSet作为数据成员实现Iterator的类。本质上,该类如下所示: 我如何检查ResultSet是否有另一行,所以由于ResultSet本身未定义hasNext,因此可以创建有效的hasNext方法?我当时在想查询以获取计数并管理该数字以查看是否还有另一行,但我想避免这种情况。 问题答案: 这是一个坏主意。这种方法要求连接一直保持打开状态,直到读取最后一行为止,并

  • 我正在使用REST与neo4j DB交互。

  • 我还想按具有该标签的节点数对标签进行排序...

  • 我可以使用Java streams/lambda表达式来执行这个迭代,而不是使用while循环来填充列表吗?

  • 假设我们有下面的Neo4j模式(简化了,但它显示了重要的一点)。有两种类型的节点和<代码>版本s通过关系的s可以通过关系连接。同样,这些关系有两个属性和,表示有效时间跨度-其中一个或两个可以(在Neo4j术语中不存在)表示无限。 编辑:节点和关系的有效性日期是独立的(尽管示例巧合地显示它们是对齐的)。 该示例显示了两个

  • 我正在通过Spark Cassandra连接器应用以下内容: