簡體   English   中英

使用 neo4j jdbc 驅動程序和 Z767EC634238039F6EZ61EB4B 的准備語句中的 cypher 查詢中的參數語法是什么?

[英]What is the syntax of parameters in cypher query in prepared statement with neo4j jdbc driver and neo4j 4?

我了解 neo4j 4.x 現在不支持具有這種語法的參數 - {1},現在支持 $param。 執行preparedStatement 的語法也發生了變化。 我的意思是 - 當我嘗試使用新的 jdbc 驅動程序 4.0.1 和 neo4j 4.2.3 執行查詢時:

  String query = "MATCH (u:User)-[:FRIEND]-(f:User) WHERE u.name = {1} RETURN f.name, f.age";
    try (PreparedStatement stmt = con.prepareStatement(query)) {
        stmt.setString(1,"John");

        try (ResultSet rs = stmt.executeQuery()) {
            while (rs.next()) {
                System.out.println("Friend: "+rs.getString("f.name")+" is "+rs.getInt("f.age"));
            }
        }
    }

我收到此錯誤 - ParameterIndex 與 SQL 語句中的參數標記不對應

因此,使用較新版本的 neo4j 4.2.3 和 jdbc 驅動程序 4.0.1 的准備好的語句查詢中的 {1} 語法仍然有效還是需要進行任何更改? 如果不是這樣,那么您是否還可以建議這里可能出現的錯誤。 提前致謝 !

{param} 語法不適用於 Neo4j 4.x。 相反,您需要更改為 $param 樣式。 這意味着,如果您在 cypher 查詢中將{1} 更改為 $1 ,則准備好的語句將再次起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM