继续学习Neo4j后发现利用Spring Data Neo4j(SDN)对数据对象进行建模,建模之后,通过使用SDN提供的存储库接口,就能方面的使用标准的CURD(增删改查)方法。
一、关于Spring Data Neo4j
像JPA使用ORM一样,SDN使用OGM(对象-图映射)将域对象与图数据库进行相互转换。在对数据对象建模时,只要使用一些简单的注解,就可以让对象与图数据库建立起映射关系。
二、使用Spring Boot框架构建项目
1、新建Maven项目,在pom.xml文件中修改JDK版本号。
2、在pom.xml中导入SDN环境以及Neo4j数据库的依赖
<!-- 版本信息 -->
<properties>
<java.version>1.8</java.version>
<spring-data-neo4j.version>4.1.2.RELEASE</spring-data-neo4j.version>
<sdn.version>4.1.0.RELEASE</sdn.version>
<neo4j-ogm.version>2.1.0</neo4j-ogm.version>
<neo4j.version>3.1.0</neo4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- sdn -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>${sdn.version}</version>
</dependency>
<!-- neo4j -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-http-driver</artifactId>
<version>${neo4j.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j.app</groupId>
<artifactId>neo4j-server</artifactId>
<version>${neo4j.version}</version>
</dependency>
<!-- Tests -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-test</artifactId>
<version>${neo4j-ogm.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.neo4j.test</groupId>
<artifactId>neo4j-harness</artifactId>
<version>${neo4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
3、配置Spring Data Neo4j
package com.hgu.config;
import org.neo4j.ogm.session.SessionFactory;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.neo4j.config.Neo4jConfiguration;
import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration//该注解表示此类为配置文件
@ComponentScan(basePackages={"com.hgu.service"})//该注解表示会自动扫描一些服务类
@EnableNeo4jRepositories(basePackages={"com.hgu.repository"})//激活我们定义的存储库接口
@EnableTransactionManagement
public class Neo4jConfig extends Neo4jConfiguration{
@Override//重写该方法目的是引用我们定义的一些实体对象
public SessionFactory getSessionFactory() {
return new SessionFactory("com.hgu.dao");
}
}
4、连接数据库配置
SDN有三种驱动的方式连接数据库,本次实验使用的是Http方式,连接数据库使用的配置文件是ogm.properties。
comiler=org.neo4j.ogm.compiler.MultiStatementCypherCompiler
driver=org.neo4j.ogm.drivers.http.driver.HttpDriver
URL=http://192.168.1.211:7474
username=neo4j
password=123456
5、配置好环境后,下面可以具体写实现的业务逻辑,先对节点进行建模
6、建模完后,接下来对实体的持久化和数据库访问的设计。可以使用SDN通过定义存储库接口来实现,存储库的接口设计可以继承SDN的存储库接口GraphRepository。GraphRepository接口基本实现了增删改查的方法。
7、编写数据访问服务类
8、最后写测试用例即可。