简体   繁体   English

Java中执行密码查询的异常

[英]exception in executing cypher query in java

I am trying to retrieve data from the neo4j DB using a transaction event handler. 我正在尝试使用事务事件处理程序从neo4j DB检索数据。 I have added the following jar files 我添加了以下jar文件

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.HashMap;
import org.neo4j.cypher.javacompat.ExecutionEngine;
import org.neo4j.cypher.javacompat.ExecutionResult;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.helpers.collection.IteratorUtil;
import org.neo4j.kernel.EmbeddedGraphDatabase;
import org.neo4j.kernel.impl.util.FileUtils;

public class SampleNeo4j { 
    private static final String DB_PATH = "C:\\Users\\amritak\\neo4jTest";   
    ExecutionResult result; 
    ExecutionResult resultString;
    String columnsString;  
    String nodeResult;
    String nodeResultAge;
    String rows = "";  
    CypherParser parser = new CypherParser();
    Query query;

    void run() {  

        GraphDatabaseService db = new EmbeddedGraphDatabase(DB_PATH);
        db.registerTransactionEventHandler(new WarehouseTransactionEventHandler());
        query = parser.parse("start n=node(*) return n");
        ExecutionEngine engine = new ExecutionEngine( db );  
        result = engine.execute(query);
        System.out.println("col string");
        System.out.println(result);
        resultString = engine.execute(query );
        System.out.println("With Out Dump : "+resultString);
        List<String> columns = resultString.columns();
        System.out.println( columns );

        Iterator<Node> n_column = resultString.columnAs( "n" );
        for ( Node nodes : IteratorUtil.asIterable( n_column ) ) {
            // note: we're grabbing the name property from the node,
            // not from the n.name in this case.
            nodeResult = nodes + ": " + nodes.getProperty( "name" );
            nodeResultAge = nodes + ": " + nodes.getProperty( "age" );
            System.out.println( nodeResult );
            System.out.println( nodeResultAge );
        }

        for ( Map<String, Object> row : resultString ) {
            for ( Entry<String, Object> column : row.entrySet() ) {
                rows += column.getKey() + ": " + column.getValue() + "; ";
            }
            rows += "\n";
        }
        System.out.println( rows );
        db.shutdown();  
    }

    public static void main(String args[]) {
        SampleNeo4j javaQuery = new SampleNeo4j();   
        javaQuery.run();    
    }
} 

though I am constantly getting the same error 虽然我不断遇到同样的错误

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps;
    at org.neo4j.cypher.parser.CypherParser.parse(CypherParser.scala:62)
    at com.graphaware.tx.event.batch.api.SampleNeo4j.run(SampleNeo4j.java:45)
    at com.graphaware.tx.event.batch.api.SampleNeo4j.main(SampleNeo4j.java:81)

the line which shows this error is 显示此错误的行是

query = parser.parse("start n=node(*) return n");

can u tell me what to do to remove this error? 您能告诉我该如何删除此错误吗?

public static void main( final String[] args ) {
    GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );

    ExecutionEngine e=new ExecutionEngine(graphDb);
    ExecutionResult rs=e.execute("match n return n limit 25");
    System.out.println(rs.columns().size());

    Iterator<Map<String, Object>> i= rs.iterator();

    Iterator<Node> n_column = rs.columnAs( "n" );

    while(n_column.hasNext()) {
        System.out.println(n_column.next().getProperty("name"));
    }
}

This code works for me. 该代码对我有用。 Here DB_Path is a string which contains location of the graphdb file. DB_Path是一个字符串,其中包含graphdb文件的位置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM