赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Neo4j是一种高性能图形数据库管理系统,使用图形结构来存储和处理数据。它以节点(Node)和关系(Relationship)的形式存储数据,并使用图形查询语言(Cypher)来执行查询和分析。Neo4j的优势包括灵活性、可扩展性和高效性,特别适用于需要处理复杂关系和大量连接数据的应用场景,如社交网络、推荐系统、网络安全等
docker pull neo4j:3.5
docker images
docker run -d --name neo4j -p 7474:7474 -p 7687:7687 neo4j:3.5
docker ps
浏览器访问 服务器ip
:7474
成功出现如下画面即代表成功
其中初始账号密码都为 neo4j
,在第一次登录时候会强制修改密码,大家根据自己设置密码
先简单看一下我的项目目录
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>test-springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <name>test-springboot</name> <description>test-springboot</description> <properties> <java.version>8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </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> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
spring:
data:
neo4j:
uri: bolt://106.55.229.181:7687
username: neo4j
password: mypassword
import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.neo4j.core.schema.GeneratedValue; import org.springframework.data.neo4j.core.schema.Id; import org.springframework.data.neo4j.core.schema.Property; @Data @Builder @AllArgsConstructor @NoArgsConstructor public class Artist { @Id @GeneratedValue private Long id; @Property private String name; @Property private String gender; @Property private String descent; @Property private String birthday; }
ArtistRepository继承的Neo4jRepository有很多方法可以直接使用,等会在测试里面可以用到
import com.example.testspringboot.entity.Artist;
import org.springframework.data.neo4j.repository.Neo4jRepository;
public interface ArtistRepository extends Neo4jRepository<Artist,Long> {
/**
* 通过@Query实现节点内容修改
*/
@Query("MATCH (a:Artist) " +
"WHERE id(a) = $id " +
"SET a.name = $name, a.gender = $gender, a.descent = $descent, a.birthday = $birthday " +
"RETURN a")
Artist update(Long id, String name, String gender, String descent, String birthday);
}
import com.example.testspringboot.dao.ArtistRepository; import com.example.testspringboot.entity.Artist; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; import java.util.List; @SpringBootTest class TestSpringbootApplicationTests { @Resource private ArtistRepository artistRepository; /** * 查找歌手节点 */ @Test void findArtist(){ List<Artist> all = artistRepository.findAll(); System.out.println(all); } /** * 创建歌手节点 */ @Test void createArtist(){ Artist artist = Artist.builder() .name("周杰伦") .gender("男") .birthday("1979-01-18") .descent("中国") .build(); Artist save = artistRepository.save(artist); System.out.println(save); // 利用findById验证 System.out.println(artistRepository.findById(save.getId())); } /** * 删除 id 删除节点 */ @Test void deleteArtist(){ // 利用执行前后歌曲节数量变化判断是否删除成功 long old = artistRepository.count(); artistRepository.deleteById(0L); long now = artistRepository.count(); System.out.println(now>old ? "删除成功":"删除失败"); } /** * 修改节点 */ @Test void updateArtist(){ // 在这里我故意创建一个错误的周杰伦节点,其中性别和出生日期错误 Artist artist = Artist.builder() .name("周杰伦") .gender("女") .birthday("2001-01-01") .descent("中国") .build(); Artist save = artistRepository.save(artist); System.out.println(save); // 将其中的性别和出生日期属性修改为正确的 save.setGender("男"); save.setBirthday("1979-01-18"); // Neo4jRepository 中没有内置的修改节点方法,在这里我们可以通过在ArtistRepository创建的方法实现 Artist update = artistRepository.update(save.getId(), save.getName(), save.getGender(), save.getDescent(), save.getBirthday()); System.out.println(update); } }
以上就是Docker部署Neo4j以及SpringBoot整合Neo4j的内容,博主在gitee上传过一个关于SpringBoot使用neo4j数据库的项目,大家有兴趣的话可以看一下,链接:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。