到目前为止,我们一直在直接使用Neo4j提供的核心Api爱来访问数据库,尽管这种方法的功能强大且极其灵活,但是底层Neo4j Api的操作有时非常繁琐。下面我们学习下Spring Data Neo4j(SDN),这是一个以更简单、更熟悉为目标的基于Spring开发模型的Spring Data项目中的子项目。
SDN适合做什么以及不适合做什么
SDN从本质上给需要或期待操作基于POJO的域实体的开发者提供了一种方便的使用代码或库函数的方法。如果是早已使用Spring,或早已经在使用丰富领域模型并想映射到一个图形数据库,SDN正适合做这样的工作。
SDN不适合一次处理任意类型的大量数据场景。要加载或存储的任何逻辑在一次操作中超过10000个单元对SDN来说不是一个好的选择。另外,通过提供一个间接层,SDN会比仅仅使用核心Api慢,因此,如果速度和性能时考虑的最重要因素的话,最好还是使用其本身的Api。SDN提供了访问底层GraphDatabaseService实例的代码,可以使用底层核心Api来获得最佳的性能和最大的灵活性。
搭建环境
查看Spring Boot官网,目前最新版1.4(SNAPSHOP)已经包含了Neo4j,但是我们还是使用最新的RELEASE版1.3.6。SDN使用最新版的4.1.2.RELEASE。
1、新建maven项目,pom文件中引入Spring Boot 1.3.6.RELEASE,Spring Boot这里就不多说了,基本上Java码农标配。
2、添加spring-data-neo4j 4.1.2.RELEASE的依赖
下面列出pom文件内容
3、配置spring-data-neo4j
|
|
SDN建模
下面我们使用SDN来构造和第二章一模一样的数据
2、新建Java Bean对应的Repository类
|
|
访问和持久化实体
1、编写业务Service类
|
|
1、编写Unit Test
|
|
|
|
至此我们已经可以通过SDN来操作Neo4j了,在本章节之前都是通过嵌入式的方式访问Neo4j的,只有这一章是通过HTTP访问Neo4j。在本节开头说过SDN提供了访问底层GraphDatabaseService实例的代码,但事实上当前版本的SDN中已经没有GraphDatabaseService相关类了,所以目前看来只能通过HTTP的方式远程访问Neo4j数据库了。什么。。。那么强大的核心api用不了了?这怎么能忍!