Neo4j学习笔记3——使用SDN建模

继续学习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、最后写测试用例即可。

猜你喜欢

转载自blog.csdn.net/cqn9012/article/details/87887298