如何在java中使用cypher加载CSV文件?
我是新来的密码。 我想在java中使用cypher加载csv。 我用Google搜索并发现了以下内容
LOAD CSV WITH HEADERS FROM "http://neo4j.com/docs/2.3.1/csv/import/movies.csv" AS csvLine MERGE (country:Country { name: csvLine.country }) .....
如何将此加载csv查询用于java代码。 我试过这样的事。
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(); } }
但我不确定这条线。
ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM "C:/..../Mock_data.csv" AS csvLine ");
它会引发语法错误。
Exception in thread "main" java.lang.Error: Unresolved compilation problems: Syntax error, insert ")" to complete MethodInvocation Syntax error, insert ";" to complete LocalVariableDeclarationStatement
我自己不知道语法结构。 如何加载csv路径?
要更正Java语法错误,您需要在字符串中间转义双引号; 否则看起来你的字符串文字在路径周围的引用处完成:
"LOAD CSV WITH HEADERS FROM \"C:/..../Mock_data.csv\" AS csvLine "
最后这对我有用!!
ExecutionResult result = engine.execute("LOAD CSV WITH HEADERS FROM 'file:///Users/xxxxx/Documents/Txx.csv' AS csvLine ")