<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.csv</groupId>
<artifactId>apache-csv</artifactId>
<version>1.9.1</version>
</dependency>
groovy
implementation 'org.neo4j:neo4j:4.0.0'
implementation 'org.apache.csv:apache-csv:1.9.1'
import org.apache.csv.CSVReader;
import org.apache.csv.exceptions.CsvParseException;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class CsvReader {
public static Map<String, Object> readCSV(String filePath) throws IOException, CsvParseException {
CSVReader csvReader = new CSVReader(new FileReader(filePath));
Map<String, Object> record = new HashMap<>();
String[] values;
while ((values = csvReader.readNext()) != null) {
record.putAll(transformValues(values));
}
csvReader.close();
return record;
}
private static Map<String, Object> transformValues(String[] values) {
Map<String, Object> transformed = new HashMap<>();
for (int i = 0; i< values.length; i++) {
transformed.putIfAbsent("column" + (i + 1), values[i]);
}
return transformed;
}
}
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.Transaction;
public class Neo4jWriter {
public static void main(String[] args) {
String filePath = "path/to/your/csv/file.csv";
Map<String, Object> record = CsvReader.readCSV(filePath);
GraphDatabaseService graphDb = GraphDatabaseService.getInstance();
Transaction transaction = graphDb.beginTx();
try {
Node node = graphDb.createNode();
node.setProperty("column1", record.get("column1"));
node.setProperty("column2", record.get("column2"));
for (String relationshipKey : record.keySet()) {
if (!"node".equals(relationshipKey)) {
Relationship relationship = node.createRelationshipTo(graphDb.createNode(), RelationshipType.withName(relationshipKey));
relationship.setProperty("column1", record.get(relationshipKey));
}
}
transaction.commit();
} finally {
if (transaction.isActive()) {
transaction.close();
}
}
}
}