java neo4j cypher

¿Cómo cargar el archivo CSV con Cypher en Java?



neo4j (2)

Soy nuevo en Cypher. Quiero cargar un csv usando cypher en java. Busqué en Google y encontré la siguiente pieza

LOAD CSV WITH HEADERS FROM "http://neo4j.com/docs/2.3.1/csv/import/movies.csv" AS csvLine MERGE (country:Country { name: csvLine.country }) .....

Cómo usar esta consulta csv de carga en código java. Intenté algo como esto.

import java.io.File; import java.io.IOException; import java.util.Map; import java.util.Map.Entry; import javax.naming.spi.DirStateFactory.Result; import org.neo4j.cypher.javacompat.ExecutionEngine; import org.neo4j.cypher.javacompat.ExecutionResult; import org.neo4j.graphdb.Direction; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.factory.GraphDatabaseFactory; import org.neo4j.kernel.impl.util.FileUtils; public class test_new { private static final String DB_PATH = "C:...../default.graphdb"; public static void main( final String[] args ) throws IOException { GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH ); Transaction tx1 = db.beginTx(); try{ ExecutionEngine engine = new ExecutionEngine(db); ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM "C:/..../Mock_data.csv" AS csvLine "); tx1.success(); } finally { tx1.close(); } db.shutdown(); } }

Pero no estoy seguro acerca de esta línea.

ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM "C:/..../Mock_data.csv" AS csvLine ");

Lanza un error de sintaxis.

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Syntax error, insert ")" to complete MethodInvocation Syntax error, insert ";" to complete LocalVariableDeclarationStatement

Yo no sé la construcción de la sintaxis yo mismo. ¿Cómo cargar la ruta csv?


¡Finalmente esto funcionó para mí!

ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM ''file:///Users/xxxxx/Documents/Txx.csv'' AS csvLine ")


Para corregir el error de sintaxis de Java, debe evitar las comillas dobles en el medio de la cadena; de lo contrario, parece que su cadena literal termina en la cita alrededor de la ruta:

"LOAD CSV WITH HEADERS FROM /"C:/..../Mock_data.csv/" AS csvLine "