neo4j使用嵌入方式示例

操作系统:windows 7

开发环境:IntelliJ IDEA 2016.1

JAVA:1.8


1 打开 IDEA,新建一个Maven的空工程


2 找到pom.xml加入所需的neo4j的maven库依赖,maven在编译时会自动去下载相关文件

<dependencies>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j</artifactId>
            <version>3.4.0</version>
        </dependency>
    </dependencies>

3 在左边的工程目录下,展示src->main->java右键新建一个Java Class,类名EmbeddedNeo4j,复制如下代码

import java.io.File;
import java.io.IOException;

import org.neo4j.graphdb.*;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.io.fs.FileUtils;

public class EmbeddedNeo4j
{
    private static final File databaseDirectory = new File( "target/graph.db" );
    GraphDatabaseService graphDb;

    ///申明结点标签
    private static enum Labels implements Label
    {
        PEOPLE
    }
    ///申明关系类型
    private static enum RelTypes implements RelationshipType
    {
        KNOWS
    }

    public static void main( final String[] args ) throws IOException
    {
        EmbeddedNeo4j hello = new EmbeddedNeo4j();
        hello.createDb();
        hello.shutDown();
    }

    void createDb() throws IOException
    {
        FileUtils.deleteRecursively( databaseDirectory );

        graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( databaseDirectory );
        registerShutdownHook( graphDb );

        try ( Transaction tx = graphDb.beginTx() )
        {
            ///创建结点
            Node n1 = graphDb.createNode();
            n1.setProperty("n", "张三");
            n1.addLabel(Labels.PEOPLE);
            Node n2 = graphDb.createNode();
            n2.setProperty("n", "李四");
            n2.addLabel(Labels.PEOPLE);
            Node n3 = graphDb.createNode();
            n3.setProperty("n", "王五");
            n3.addLabel(Labels.PEOPLE);
            Node n4 = graphDb.createNode();
            n4.setProperty("n", "赵六");
            n4.addLabel(Labels.PEOPLE);

            ///创建关系
            n1.createRelationshipTo(n2, RelTypes.KNOWS);
            n2.createRelationshipTo(n3, RelTypes.KNOWS);
            n3.createRelationshipTo(n4, RelTypes.KNOWS);
            n4.createRelationshipTo(n1, RelTypes.KNOWS);

            tx.success();
        }
    }

    void shutDown()
    {
        System.out.println();
        System.out.println( "Shutting down database ..." );
        graphDb.shutdown();
    }

    private static void registerShutdownHook( final GraphDatabaseService graphDb )
    {
        Runtime.getRuntime().addShutdownHook( new Thread()
        {
            @Override
            public void run()
            {
                graphDb.shutdown();
            }
        } );
    }
}


4 右键Run

编译运行后会生成target/graph.db这个文件夹

我在编译的时候出现了“Error:java: Compilation failed: internal java compiler error”这个错误,原因是:

Project Structure->Project language Level和

setting->Building,Execution,Deployment->Compiler->Java Compiler->Pre-module bytecode version下的target bytecode version不一致,将后者改为1.8就可以了


5 查看成果:

找到一个neo4j的安装目录,打开data\databases,将原来的graph.db删除再将生成的graph.db复制进去,启动neo4j可以看到刚才在代码中创建的结点及关系,如图:




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Neo4j是一种图形数据库,它可以嵌入到前端中使用嵌入Neo4j到前端的过程可以通过以下几个步骤实现。 首先,我们需要在前端项目中引入Neo4j的JavaScript驱动程序。Neo4j提供了官方的JavaScript驱动程序,我们可以通过npm或者cdn引入该驱动程序。 然后,我们需要在前端中建立与Neo4j数据库的连接。使用Neo4j提供的驱动程序,我们可以通过指定Neo4j数据库的URL、用户名和密码来建立连接。 连接建立后,我们可以使用Cypher查询语言与Neo4j进行交互。Cypher是Neo4j的查询语言,它可以用于查询、创建、更新和删除图形数据库中的数据。通过编写Cypher查询语句,我们可以在前端中执行这些查询,并获取处理结果。 在前端中使用Neo4j可以实现许多有趣的功能。例如,我们可以通过查询图形数据库中的数据,实现社交网络的关注关系展示;或者利用图形数据库的连接关系特性,构建一些图形化的数据可视化工具。 然而,我们需要注意在前端中使用嵌入Neo4j时的性能和安全性问题。由于Neo4j是一个较重的数据库,处理复杂查询时可能会影响前端的性能。因此,我们需要合理优化查询,并在前端中使用适当的缓存机制来减轻数据库的负荷。此外,为了保护数据库的安全,我们需要在前端中实施访问控制措施,限制用户对数据库的操作权限。 总结而言,Neo4j可以被嵌入到前端中使用,并通过连接数据库、执行Cypher查询等方式实现与图形数据库的交互。在使用嵌入Neo4j时,我们需要考虑性能和安全性问题,以便在前端中实现高效且安全的图形数据库应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值