将参数传递给neo4j cypher查询

Sau*_*nde 3 java neo4j cypher

我有一个用于连接neo4j的java程序.想要传递参数,该参数是用户给cypher查询的变量值.

    void connect() {

    graphDataService = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
    Transaction transaction = graphDataService.beginTx();

    String name = "";

    Scanner sc_name = new Scanner(System.in);
    System.out.println("enter name : ");
    name=sc_name.next();

    try {
        ExecutionEngine engine = new ExecutionEngine(graphDataService);
        ExecutionResult result = engine.execute("START n = node(*) where n.nodename = ? return n");
        System.out.println(result.dumpToString());
        transaction.success();
    }

    finally {
        transaction.finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该如何连接将替换的变量中的值并获取结果.任何的想法?

h3n*_*rik 5

你可以这样做:

import org.neo4j.helpers.collection.MapUtil;
...
ExecutionResult result = engine.execute("START n=node(*) WHERE n.nodename={name}, return n", MapUtil.map("name", "value");
Run Code Online (Sandbox Code Playgroud)