Neo4j的Java嵌入式开发
2021-04-11 05:27
标签:org 高级 sage 标准 public img exception 操作 hda 其他开发语言如.NET、JavaScript、Python、PHP等也希望能够和Neo4j相互集成,就像操作传统的关系型数据库那样熟练的操作Neo4j这个图数据库。 Java Driver:面向Java开发人员。 .net Driver:面向.net开发人员。 JavaScript Driver:面向前端开发人员。 Python Driver:面向Python开发人员。 Neo4j的Java嵌入式开发 标签:org 高级 sage 标准 public img exception 操作 hda 原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/13362100.htmlNeo4j开发入门
Java嵌入式开发模式
各语言驱动开发模式
Neo4j HTTP API
三种开发模式的结构
Java API嵌入式开发
准备工作
各版本的依赖库及其名称
版本
依赖库
描述
Neo4j社区版
org.neo4j:neo4j
社区版,有完全的ACID事务
Neo4j企业版
org.neo4j:neo4j-enterprise
企业版,添加高级监控,在线备份和高可用功能集群
导入Neo4j的jar包的Maven坐标
启动和关闭数据库
package com.sunxiaping.neo4j;
import org.junit.Before;
import org.junit.Test;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import java.io.File;
public class EmbeddedNeo4jTest {
GraphDatabaseService graphDb = null;
@Before
public void before() {
//数据库文件的目录地址
String storeDir = "D:\\develop\\Neo4j Desktop\\data\\neo4jDatabases\\database-420aa183-f1e8-44e5-b34e-dbe6190064f7\\installation-3.4.18\\data\\databases\\graph.db";
//创建GraphDatabaseService实例,这代表是数据库的实例
graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(new File(storeDir));
Transaction transaction = graphDb.beginTx();
}
@Test
public void after() {
//关闭数据库
if (null != graphDb) {
graphDb.shutdown();
}
}
/**
* 连接数据库
*/
@Test
public void connectDb() {
System.out.println("连接数据库..." + graphDb);
}
}
操作Neo4j的应用示例
package com.sunxiaping.neo4j;
import org.junit.Before;
import org.junit.Test;
import org.neo4j.graphdb.*;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.io.fs.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Map;
public class EmbeddedNeo4jTest {
GraphDatabaseService graphDb = null;
Transaction transaction = null;
String storeDir = null;
@Before
public void before() {
//数据库文件的目录地址
storeDir = "D:\\develop\\neo4j-community-3.5.19\\data\\databases\\graph.db";
//创建GraphDatabaseService实例,这代表是数据库的实例
graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(new File(storeDir));
transaction = graphDb.beginTx();
}
@Test
public void after() {
//关闭数据库
if (null != graphDb) {
graphDb.shutdown();
}
}
/**
* 通过删除数据库文件的方式创建数据库
*/
@Test
public void deleteDb() throws IOException {
FileUtils.deleteRecursively(new File(storeDir));
}
/**
* 新增节点和关系
*/
@Test
public void createDataTest() {
try {
//创建节点
Node firstNode = graphDb.createNode();
firstNode.setProperty("Spring Festival", "春节");
firstNode.setProperty("Peking Opera", "京剧");
firstNode.setProperty("Dumpling", "饺子");
firstNode.addLabel(Label.label("China"));
//创建节点
Node secondNode = graphDb.createNode();
secondNode.setProperty("generous", "慷慨");
secondNode.setProperty("be ready to help others", "乐于助人");
secondNode.setProperty("Hospitality", "热情好客");
secondNode.addLabel(Label.label("Person"));
secondNode.addLabel(Label.label("Chinese"));
//创建关系
Relationship relationship = firstNode.createRelationshipTo(secondNode, RelationshipType.withName("CountryPeople"));
relationship.setProperty("message", "国家和人");
System.out.println("============firstNode===========");
Object spring_festival = firstNode.getProperty("Spring Festival");
System.out.println("spring_festival = " + spring_festival);
Object peking_opera = firstNode.getProperty("Peking Opera");
System.out.println("peking_opera = " + peking_opera);
Object dumpling = firstNode.getProperty("Dumpling");
System.out.println("dumpling = " + dumpling);
Map