手记

Spring Data Neo4j 从入门到精通(一)

大家好,最近在折腾Neo4j图数据库,Neo4j是啥我就不赘述了,怎么玩我也不说了,因为我懒。。。

本来是没有这个系列的,但是我在最近一周的爬坑里发现SDN的资料真的是少啊,要么也说得是含糊其辞,实在是受不了。。。

所以我就记录一下SDN的学习过程吧,互相学习。。。。。欢迎大家批评指正。。。。

正文如下:

SDN介绍

1、什么是SDN

    SDN全称Spring Data Neo4j,是开源Spring Data项目下一个项目,是Spring Data下的一个重要子项目,它提供了高级的特性以将注解的实体类映射到Neo4j图型数据库上。其模板编程模型类似于我们熟知的Spring模板,为与图的交互提供了基础,此外也用于高级的仓库支持。该项目旨在为NoSQL数据库操作提供便捷的支持,是为了让广大码农少写代码的福音。。。

2、如何下载SDN

如果你需要单独研究源码玩呢,请至http://projects.spring.io/spring-data-neo4j下载,在那里你也能找到很多关于SDN的信息。如果你使用Maven管理项目,请在Pom.xml加入如下依赖。我搞了半天不知道简书咋插入依赖代码,只能贴图了,sorry了同学们。

pom.xml依赖

3、SDN能干什么

SDN是能够操作基于POJO实体将其映射到Neo4j的一种方法。SDN提供了许多优秀的工具能够操作Neo4j的GraphDatabaseService,可以使用底层API来获得最佳的性能和最大的自由度。总而言之,在适当的逻辑数量范围内(大约10000)使用SDN来操作Neo4j是非常爽的。


准备工作

    既然你都到了搜索SDN的程度了,我就默认你具有java和neo4j的基础。。。。不会也没关系,先去看一下这两者的从入门到放弃。。或者私信我,大家一起学习。。。。。

案例代码初始化一个社交网络:

public void createCypherNodeUse(GraphDatabaseService graphDB) {

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

Node userJohn = graphDB.createNode();

        userJohn.setProperty("name", "John Johnson");

        userJohn.setProperty("type","user");

        Node userKate = graphDB.createNode();

        userKate.setProperty("name", "Kate Smith");

        userKate.setProperty("type","user");

        Node userJack = graphDB.createNode();

        userJack.setProperty("name", "Jack Jeffries");

        userJack.setProperty("type","user");

        Node movieFargo = graphDB.createNode(LabelCity.MOVIE);

        movieFargo.setProperty("name", "Fargo");

        movieFargo.setProperty("type","movie");

        Node movieAlien = graphDB.createNode(LabelCity.MOVIE);

        movieAlien.setProperty("name", "Alien");

        movieAlien.setProperty("type","movie");

        Node movieHeat = graphDB.createNode(LabelCity.MOVIE);

        movieHeat.setProperty("name", "Heat");

        movieHeat.setProperty("type","movie");

        userJohn.createRelationshipTo(userKate, RelationNeo.IS_FRIEND_OF);

        userJohn.createRelationshipTo(userJack, RelationNeo.IS_FRIEND_OF);

        Relationship real1 = userJohn.createRelationshipTo(movieFargo, RelationNeo.HAS_SEEN);

        real1.setProperty("Stars", 5);

        Relationship real2 = userJack.createRelationshipTo(movieFargo, RelationNeo.HAS_SEEN);

        real2.setProperty("Stars", 4);

        Relationship real3 = userJack.createRelationshipTo(movieAlien, RelationNeo.HAS_SEEN);

        real3.setProperty("Stars", 5);

        Relationship real4 = userKate.createRelationshipTo(movieHeat, RelationNeo.HAS_SEEN);

        real4.setProperty("Stars", 3);

        tx.success();

    }catch (Exception e){

e.printStackTrace();

    }finally {

logger.info("社交网络初始化完毕!");

    }

}



作者:漳甲
链接:https://www.jianshu.com/p/234ff78c3d5a


0人推荐
随时随地看视频
慕课网APP