neo4j java 实例_Neo4j - 原生Java API

在本章中,我们将使用Neo4j Native Java API开发和测试Java应用程序。 我们将在下一章讨论Neo4j Cypher Java API。

在开发应用程序之前,请参考“Neo4j Java环境设置”一章来设置Eclipse IDE来开发此应用程序

Neo4j原生Java API示例

此示例演示如何在Eclipse IDE中开发Java应用程序以开发和测试Neo4j原生ava API示例

请按照“Neo4j Java环境设置”一章中提到的所有步骤操作

第1步 -在同一个Java项目中创建一个Java程序

neo4j java 实例_Neo4j - 原生Java API_第1张图片现在开始编写Neo4j Java API编码以执行Neo4j DB操作

第2步 -创建Neo4j数据库GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();

GraphDatabaseService db= dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");

它在指定的路径为我们创建一个Schema / Database,如下所示。这类似于Oracle SQL的“CREATE DATABASE”命令。

neo4j java 实例_Neo4j - 原生Java API_第2张图片

第3步 -启启动Neo4j数据库事务以提交我们的更改try (Transaction tx = graphDb.beginTx()) {

// Perform DB operations

tx.success();

}

所以对于你的Java程序源代码看起来像package com.tp.neo4j.java.examples;

import org.neo4j.graphdb.GraphDatabaseService;

import org.neo4j.graphdb.Transaction;

import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class Neo4jJavaAPIDBOperation {

public static void main(String[] args) {

GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();

GraphDatabaseService db = dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");

try (Transaction tx = db.beginTx()) {

// Perform DB operations

tx.success();

}

}

}

第4步 -要创建节点,我们需要标签名称。 通过实现Neo4j Java API“Label”接口创建一个枚举。package com.tp.ne4oj.java.examples;

import org.neo4j.graphdb.Label;

public enum Tutorials implements Label {

JAVA,SCALA,SQL,NEO4J;

}

第5步 -创建节点并为其设置属性

创建两个节点Node javaNode = db.createNode(Tutorials.JAVA);

Node scalaNode = db.createNode(Tutorials.SCALA);

设置属性javaNode.setProperty("TutorialID", "JAVA001");

javaNode.setProperty("Title", "Learn Java");

javaNode.setProperty("NoOfChapters", "25");

javaNode.setProperty("Status", "Completed");

scalaNode.setProperty("TutorialID", "SCALA001");

scalaNode.setProperty("Title", "Learn Scala");

scalaNode.setProperty("NoOfChapters", "20");

scalaNode.setProperty("Status", "Completed");

第6步 -要创建关系,我们需要关系类型。 通过实现Neo4j“关系类型”创建枚举。package com.tp.neo4j.java.examples;

import org.neo4j.graphdb.RelationshipType;

public enum TutorialRelationships implements RelationshipType{

JVM_LANGIAGES,NON_JVM_LANGIAGES;

}

第7步 -创建节点之间的关系并设置它的属性。

创建从Java节点到Scala节点的关系Relationship relationship = javaNode.createRelationshipTo(scalaNode,

TutorialRelationships.JVM_LANGIAGES);

将属性设置为此关系relationship.setProperty("Id","1234");

relationship.setProperty("OOPS","YES");

relationship.setProperty("FP","YES");

第8步 -最终源代码。package com.tp.neo4j.java.examples;

import org.neo4j.graphdb.GraphDatabaseService;

import org.neo4j.graphdb.Node;

import org.neo4j.graphdb.Relationship;

import org.neo4j.graphdb.Transaction;

import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class Neo4jJavaAPIDBOperation {

public static void main(String[] args) {

GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();

GraphDatabaseService db= dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");

try (Transaction tx = db.beginTx()) {

Node javaNode = db.createNode(Tutorials.JAVA);

javaNode.setProperty("TutorialID", "JAVA001");

javaNode.setProperty("Title", "Learn Java");

javaNode.setProperty("NoOfChapters", "25");

javaNode.setProperty("Status", "Completed");

Node scalaNode = db.createNode(Tutorials.SCALA);

scalaNode.setProperty("TutorialID", "SCALA001");

scalaNode.setProperty("Title", "Learn Scala");

scalaNode.setProperty("NoOfChapters", "20");

scalaNode.setProperty("Status", "Completed");

Relationship relationship = javaNode.createRelationshipTo

(scalaNode,TutorialRelationships.JVM_LANGIAGES);

relationship.setProperty("Id","1234");

relationship.setProperty("OOPS","YES");

relationship.setProperty("FP","YES");

tx.success();

}

System.out.println("Done successfully");

}

}

第9步 -在执行此Java程序之前,检查您的Neo4j是否处于关闭模式。 如果没有,请点击“停止”按钮展开它。

neo4j java 实例_Neo4j - 原生Java API_第3张图片

第10步 -执行Java程序并在Eclipse IDE控制台中观察输出。

neo4j java 实例_Neo4j - 原生Java API_第4张图片

选择我们的Neo4j数据库文件夹,然后单击“开始”按钮

neo4j java 实例_Neo4j - 原生Java API_第5张图片

一旦此数据库成功启动,通过单击“http:// localhost:7474”链接访问Neo4j浏览器来观察我们的数据。

neo4j java 实例_Neo4j - 原生Java API_第6张图片

第11步-在Neo4j数据浏览器的$ prompt下键入以下命令

MATCH(a)-[r:JVM_LANGIAGES]->(b)RETURN r

neo4j java 实例_Neo4j - 原生Java API_第7张图片

单击“Java”节点以查看其属性

neo4j java 实例_Neo4j - 原生Java API_第8张图片

单击“Scala”节点以查看其属性

neo4j java 实例_Neo4j - 原生Java API_第9张图片

单击关系以查看其属性

neo4j java 实例_Neo4j - 原生Java API_第10张图片

注意 -

如果我们的Neo4j服务器通过引用我们新创建的数据库启动和运行,那么我们不能执行我们的程序,因为服务器已经锁定了这个数据库。

所以当我们执行我们以前的程序时,我们会得到一些错误堆栈跟踪

java.io.IOException:C:\TPNeo4jDB\lock because another process already holds the lock.

为了避免这个问题,首先停止我们的服务器,然后执行程序。

因为默认情况下Neo4j DB Server一次只接受一个锁。 在实时应用程序中,Ne04J DBA人员将更新数据库属性以允许一次允许一些数量的锁。

你可能感兴趣的:(neo4j,java,实例)