(零基础学习)Neo4j+Spring boot 自行定义属性

这篇具有很好参考价值的文章主要介绍了(零基础学习)Neo4j+Spring boot 自行定义属性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前置知识

1.Neo4j :属性

节点和关系都可以设置自己的属性。 属性是由Key-Value键值对组成,键名是字符串。属性值是要么是原始值,要么是原始值类型的一个数组。比如+String+,+int+和i+int[]+都是合法的。

注意
null不是一个合法的属性值。 Nulls能代替模仿一个不存在的Key
…/_images/image3.9.png
属性值类型

Type	Description	Value range
boolean	true/false	 
byte	8-bit integer	-128 to 127, inclusive
short	16-bit integer	-32768 to 32767, inclusive
int	32-bit integer	-2147483648 to 2147483647, inclusive
long	64-bit integer	-9223372036854775808 to 9223372036854775807, inclusive
float	32-bit IEEE 754 floating-point number	 
double	64-bit IEEE 754 floating-point number	 
char	16-bit unsigned integers representing Unicode characters	u0000 to uffff (0 to 65535)
String	sequence of Unicode characters	 
如果要了解float/double类型的更多细节,请参考:Java Language Specification。

neo4j添加属性,neo4j,学习,neo4j,spring boot

2.Cypher语法

本人Cypher语法 同样小白 仅分享(有不正确的地方请包涵)
neo4j 中文网

节点操作

创建节点

创建一个标签为zhan的节点 (标签:将数据进行分类,方便管理)

create(n:zhan);// 这里的n就是随便起的一个变量名,代指当前实体或者关系。

创建一个标签为zhan 且带有属性值的节点

create(n:zhan{id:1,name:'小明',age:20});
查询节点

按照标签查询

match (n:zhan) return n; 

按照id进行查询

match (n:zhan) where id(n) = 38023 return n;

多属性条件查询

match (n:zhan) where n.name = '小明'and n.age = 20 and n.id = 1 return n;

添加多标签

match (n:zhan) where id(n) = 38023 set n:zhan1 return n;
match (n:zhan) where id(n) = 38023 set n:zhan2 return n;

移除标签

match (n:zhan) where id(n) = 38023 remove n:zhan2 return n;
match (n:zhan) where id(n) = 38023 remove n:zhan1 return n;

修改属性

match (n:zhan) where n.name='小明' set n.name = '小红' return n;
match (n:zhan) where n.name='小明' set n.name = '小红' set n.age = '200'  return n;

删除实体

match (n:zhan) where n.name = '小王' delete n;

相信 已发现 规律 * —— *

关系操作

新建关系和实体

1. 无实体
create (n:zhan{name:'小张'})-[r:test] -> (m:zhan{name:'小李'})
create (n:zhan{name:'小黄'})-[r:test{name:'夫妻'}] -> (m:zhan{name:'小八'})
2.有实体
match (n:zhan),(m:zhan) where n.name = '小李' and m.name = '小八' 
create (n)-[r:test{name:'儿子'}]->(m) ;

修改属性

match p = (n)-[r:test]->(m) where r.name='朋友' set r.name='闺蜜' return p;

关系添加属性

match p = (n)-[r:test]->(m) where r.name='闺蜜' set r.color='红色' return p;

删除关系

match (n)-[r:relation]->(m) where r.name = '闺蜜' delete r;

修改标签
【注意】neo4j是不支持修改关系标签
修改标签的操作是重新创建一个关系删除原关系

MATCH (n)-[r:test]->(m) where r.name='闺蜜'  #搜出来想要修改的关系
CREATE (n)-[r2:relation]->(m)  # 新建关系
SET r2 = r   # copy原属性
DELETE r # 删除

高级搜索 …

3.Spring boot ,Maven 基本知识

Neo4j + Java api

1.Maven

【注意】:Spring boot 版本 2.2 以上

<!--        neo4j-->
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-ogm-http-driver</artifactId>
        </dependency>
<!--        spring neo4j-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
        </dependency>
2.application.yml
neo4j:
      uri: bolt://******:***
      username: neo4j
      password: ''
3.Node 类

neo4j添加属性,neo4j,学习,neo4j,spring boot

4.关系类
@RelationshipEntity //表示关系类型
@Data //get set
@AllArgsConstructor//会生成一个包含所有变量的构造方法,默认生成的方法是 public 的
@NoArgsConstructor // 生成一个无参数的构造方法
public class KnowledgePointsRelation {
    @Id
    @GeneratedValue
    private Long id;
    private Date createTime;
    private String name;

    /**
     *  起始节点的实体
     */
    @StartNode
    private KnowledgePointsNose KnowledgePointsFrom;
    /**
     * 终止节点的实体
     */
    @EndNode
    private KnowledgePointsNose  KnowledgePointsTo;

    public KnowledgePointsRelation(KnowledgePointsNose KnowledgePointsFrom,KnowledgePointsNose KnowledgePointsTo,String name){
        this.KnowledgePointsFrom=KnowledgePointsFrom;
        this.KnowledgePointsTo=KnowledgePointsTo;
        this.name=name;
    }
}
Repository层
public interface KnowledgePointsNoseRepository extends Neo4jRepository<KnowledgePointsNose,Long> {
}
public interface KnowledgePointsRelationRepository extends Neo4jRepository<KnowledgePointsRelation,Long> {
}

同样:
neo4j添加属性,neo4j,学习,neo4j,spring boot
neo4j 结合现有方法文章来源地址https://www.toymoban.com/news/detail-791688.html

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package org.springframework.data.repository;

import java.util.Optional;

@NoRepositoryBean
public interface CrudRepository<T, ID> extends Repository<T, ID> {
    <S extends T> S save(S var1);

    <S extends T> Iterable<S> saveAll(Iterable<S> var1);

    Optional<T> findById(ID var1);

    boolean existsById(ID var1);

    Iterable<T> findAll();

    Iterable<T> findAllById(Iterable<ID> var1);

    long count();

    void deleteById(ID var1);

    void delete(T var1);

    void deleteAll(Iterable<? extends T> var1);

    void deleteAll();
}
Test(测试新增)
        CustomerNode customerNode=new CustomerNode();
        customerNode.setName(name);
        customerNode.setAge(age);
        customerRepository.save(customerNode);
        CustomerNode customerNodeTo=customerRepository.findByName(nameTo);
        if(customerNodeTo !=null){
            CustomerRelation customerRelation=new CustomerRelation(customerNode,customerNodeTo,remark);
            customerRelationRepository.save(customerRelation);
        }

到了这里,关于(零基础学习)Neo4j+Spring boot 自行定义属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图数据库Neo4j学习四Spring Data NEO

    如下所示,这是我们的一个实际的节点,我们以该节点为例,创建一个UserNode 如果出现以下错误 解决方法 :找到你安装neo4j的路径下的conf文件夹,neo4j.conf,找到 将前面的注释#去掉,然后重启neo4j,在重启项目即可。 通过接口创建User节点,老王 ,然后再neo4j中查询,看能否

    2024年02月11日
    浏览(41)
  • Neo4j:入门基础(二)~ 数据导入Neo4J

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2024年02月09日
    浏览(50)
  • Neo4j:入门基础(二)~ 数据导入Neo4J RDF导入neo4j数据库

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2023年04月24日
    浏览(57)
  • Neo4j基础知识

    图数据库是基于数学里图论的思想和算法而实现的高效处理复杂关系网络的新型数据库系统。它善于高效处理大量的、复杂的、互连的、多变的数据。其计算效率远远高于传统的关系型数据库。 在图形数据库当中,每个节点代表一个对象,节点之间的连线代表对象之间的关系

    2024年04月16日
    浏览(33)
  • Neo4j之FOREACH基础

    在 Neo4j 中, FOREACH 语句用于在查询中对一组元素执行某些操作,通常是在创建或更新节点关系时。它常常与 CREATE 或 SET 等操作结合使用。 创建多个关系: 这个查询会找到名为 \\\"Alice\\\" 的节点和名为 \\\"The Matrix\\\" 的电影,并且只在尚不存在 \\\"ACTED_IN\\\" 关系的情况下创建关系。 批量更

    2024年02月13日
    浏览(47)
  • Neo4j之MERGE基础

    在 Neo4j 中, MERGE 语句用于根据指定的模式进行创建或匹配节点和关系。它可以在节点或关系不存在时创建它们,并在已存在时进行匹配。 创建或匹配节点: 这个查询会检查是否已经存在一个具有 \\\"Person\\\" 标签且属性 \\\"name\\\" 为 \\\"John\\\" 的节点。如果不存在,则创建一个新节点。

    2024年02月13日
    浏览(42)
  • Neo4j之REMOVE基础

    在 Neo4j 中, REMOVE 语句用于从节点中删除特定的属性。这在你需要更新或者清除节点属性时非常有用。 1】删除单个属性: 这个查询会找到具有 \\\"Person\\\" 标签且属性 \\\"name\\\" 为 \\\"Alice\\\" 的节点,并从这些节点中删除 \\\"age\\\" 属性。 2】删除多个属性: 这个查询会找到具有 \\\"Person\\\" 标签且

    2024年02月13日
    浏览(37)
  • Neo4j之unwind基础

    UNWIND 语句在 Cypher 查询中用于将列表(数组)中的元素逐个“展开” ,从而将每个元素视为单独的行进行处理。它通常与 MATCH 、 CREATE 、 MERGE 等语句结合使用,用于对列表中的每个元素执行相应的操作。以下是一些常用的示例和解释: 基本用法 : 这个示例使用 UNWIND 逐个展

    2024年02月12日
    浏览(31)
  • Neo4j之DELETE基础

    在 Neo4j 中, DELETE 语句用于删除节点、关系或节点属性。它允许从图数据库中移除不再需要的数据。 1】删除节点及其关系: 这个查询会找到具有 \\\"Person\\\" 标签且属性 \\\"name\\\" 为 \\\"Alice\\\" 的节点,然后删除该节点以及与之关联的所有关系。 2】删除特定类型的关系: 这个查询会找到

    2024年02月13日
    浏览(34)
  • Neo4j之CREATE基础

    在 Neo4j 中, CREATE 语句用于创建节点、关系以及节点属性。 创建节点: 这个查询会创建一个具有 \\\"Person\\\" 标签的节点,节点属性包括 \\\"name\\\" 和 \\\"age\\\"。 创建带有关系的节点: 这个查询会创建两个带有 \\\"Person\\\" 标签的节点,并创建一个 \\\"FRIEND\\\" 关系将它们连接起来。 创建带有多个标

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包