1.Neo4j访问的两种方式
- 嵌入式数据库
- 服务器模式(通过REST的访问)
它是由应用程序的性质(neo4j是独立服务器 还是和程序在一起),性能,监控和数据安全性来决定架构选择。
An embedded database(嵌入式数据库)
嵌入式Neo4j数据库是性能的最佳选择。 通过指定数据存储的路径以编程方式访问嵌入式数据库。
我们选择嵌入式数据库出于以下原因:
- 使用Java作为我们项目的编程语言时
- 应用程序是独立的
- 程序追求很高的性能
Neo4j Server(服务器模式)
Neo4j Server是相互操作性,安全性和监控的最佳选择。 实际上,REST接口允许所有现代平台和编程语言与它进行互操作。 此外,作为独立应用程序,它比嵌入式配置更安全(客户端中的潜在故障不会影响服务器),并且更易于监控。 如果我们选择使用这种模式,我们的应用程序将充当Neo4j服务器的客户端。要连接到Neo4j服务器,可以使用任何编程语言的REST 访问数据库。
2.Java客户端操作Neo4j
1…嵌入式模式
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>4.0.1</version>
</dependency>
public class EmbeddedNeo4jAdd {
private static final File databaseDirectory = new File( "target/graph.db" );
public static void main(String[] args) {
GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(databaseDirectory);
System.out.println("Database Load!");
Transaction tx = graphDb.beginTx();
Node n1 = graphDb.createNode();
n1.setProperty("name", "张三");
n1.setProperty("character", "A");
n1.setProperty("gender",1);
n1.setProperty("money", 1101);
n1.addLabel(new Label() {
@Override
public String name() {
return "Person";
}
});
String cql = "CREATE (p:Person{name:'李四',character:'B',gender:1,money:21000})";
graphDb.execute(cql);
tx.success();
tx.close();
System.out.println("Database Shutdown!");
graphDb.shutdown();
}
}
public class EmbeddedNeo4jQueryAll {
private static final File databaseDirectory = new File( "target/graph.db" );
public static void main(String[] args) {
GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(databaseDirectory)