最近在使用图数据库,所以就用SpringBoot和Neo4j创建了一个简单的java项目:

项目架构创建(使用IDEA):

file-->new-->project打开如下窗口:


使用IDEA创建SpringBoot+neo4j项目使用IDEA创建SpringBoot+neo4j项目

选择Spring Intializr选项然后点击下一步---出现如下窗口:

使用IDEA创建SpringBoot+neo4j项目使用IDEA创建SpringBoot+neo4j项目


填写group和artifact后选择下一步(出现如下窗口):使用IDEA创建SpringBoot+neo4j项目):


使用IDEA创建SpringBoot+neo4j项目


勾选web

使用IDEA创建SpringBoot+neo4j项目使用IDEA创建SpringBoot+neo4j项目


勾线nosql的neo4j   然后点击下一步,这样就创建好了一个项目,项目结构如下图:


使用IDEA创建SpringBoot+neo4j项目


至此项目创建成功。


pom文件与依赖已经自动生成:


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.neo</groupId>
   <artifactId>neo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>neo</name>
   <description>Demo project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.7.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-neo4j</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>

   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>


</project>


创建启动类:

@SpringBootApplication
public class NeoApplication {

   public static void main(String[] args) {
      SpringApplication.run(NeoApplication.class, args);
   }
}


创建实体对象:


package com.neo.neo.Entitys;

import org.neo4j.ogm.annotation.GraphId;
import org.neo4j.ogm.annotation.NodeEntity;

@NodeEntity
public class Person {
    @GraphId
    private Long id;
    private String name ;
    private String phone;
    private String sex;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}


repositories类:


package com.neo.neo.repositories;

import com.neo.neo.Entitys.Person;

import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.GraphRepository;
import org.springframework.data.repository.query.Param;

import java.util.Collection;

public interface PersonRepository extends GraphRepository<Person> {
    Person findByName(@Param("name") String name);
    @Query("MATCH (t:Person) WHERE t.name =~ ('(?i).*'+{name}+'.*') RETURN t")
    Collection<Person> findByPersonName(@Param("name") String name);
}

控制器:

package com.neo.neo.controller;

import com.neo.neo.Entitys.Person;
import com.neo.neo.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/p")
public class PersonController {
    @Autowired
    private PersonService personService;

    @RequestMapping(value = "/{name}", method = RequestMethod.GET)
    @ResponseBody
    public String create(@PathVariable String name) {
        Person person =  personService.findByName(name);
        String persons = "姓名是:"+person.getName()+"id是:"+person.getId()+"电话是:"+person.getPhone()+"性别是:"+person.getSex();
        return persons;
    }


Service接口:


package com.neo.neo.service;

import com.neo.neo.Entitys.Person;

public interface PersonService {
    Person  findByName(String name);

}

接口实现:

import com.neo.neo.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class PersonServiceImpl implements PersonService{

    @Autowired
    PersonRepository personRepository;
    @Override
    public Person findByName(String name) {
        Person person = personRepository.findByName(name);
        return person;
    }
}


启动后进行访问:http://localhost:8080/p/glim


姓名是:glim id是:0 电话是:13666666666 性别是:男



更加复杂的操作后续将逐步加入,初次使用,若有不完善之处还请大家批评指正!





相关文章:

  • 2021-08-06
  • 2021-12-04
  • 2021-07-14
  • 2021-05-03
  • 2021-12-16
  • 2021-11-01
  • 2021-11-14
猜你喜欢
  • 2021-06-05
  • 2021-04-02
  • 2021-05-21
相关资源
相似解决方案