Neo4j的JavaAPI
Neo4j的JavaAPI的使用
- 创建空的maven项目
- 引入驱动依赖
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>5.7.0</version>
</dependency>
- 编写测试
注意:最新版本的驱动需要JDK17
- 创建节点
public class App {
private static final Driver driver;
static {
driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "Aa111111"));
}
public static void main(String[] args) {
try {
// 创建节点
create();
create("test");
} finally {
driver.close();
}
}
/**
* 创建节点
*/
public static void create() {
try (Session session = driver.session()){
int r = session.executeWrite(tx -> {
Query query = new Query("CREATE (n:Person {name: 'Tom Hanks'}) return id(n)");
Result result = tx.run(query);
return result.single().get(0).asInt();
});
System.out.println(r);
}
}
/**
* 创建节点包含参数
*/
public static void create(String name) {
try (Session session = driver.session()){
int r = session.executeWrite(tx -> {
Query query = new Query("CREATE (n:Person {name: $name}) return id(n)", parameters("name", name));
Result result = tx.run(query);
return result.single().get(0).asInt();
});
System.out.println(r);
}
}
}
- 创建关系
public static void createRelation() {
try (Session session = driver.session()) {
String r = session.executeWrite(tx -> {
Query query = new Query("match (n1:Person), (n2:Person) where n1.name = 'zhangsan' and n2.name='lisi' create (n1)<-[r:Friend]-(n2) return r");
Result result = tx.run(query);
return result.single().get(0).asMap().toString();
});
System.out.println(r);
}
}
- 查询节点
public static List<String> queryPersonNames() {
try (Session session = driver.session()) {
return session.readTransaction(tx -> {
Query query = new Query("MATCH (n:Person) RETURN n.name");
Result result = tx.run(query);
List<String> names = result.stream()
.map(r -> r.get(0).asString())
.collect(Collectors.toList());
System.out.println(names);
return names;
});
}
}
- 删除节点
public static void delete() {
try (Session session = driver.session()) {
int r = session.executeWrite(tx -> {
Query query = new Query("match(p:Pet) delete p return id(p) ");
Result result = tx.run(query);
return result.single().get(0).asInt();
});
System.out.println(r);
}
}