neo4j图形数据库第六弹——整合springboot(支持添加节点关系)

正经学徒,佛系记录,不搞事情

基于上文:https://blog.csdn.net/qq_31748587/article/details/84392092 的项目

这里举例四种常用的添加方法:

  1. 创建单个节点
  2. 创建多个节点
  3. 根据已有节点创建关系
  4. 同时创建节点和关系

工具类 Neo4jUtil 中添加方法 add 

    /**
     * 执行添加cql
     * @param cql 查询语句
     */
    public static void add(String cql) {
        //启动事务
        try (Session session = driver.session();
             Transaction tx = session.beginTransaction()) {
            tx.run(cql);
            //提交事务
            tx.success();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这与以往的查询工具方法不同,涉及到事务处理,需要通过 .beginTransaction 方法开启事务,通过 tx.success 提交事务

这里用到了 Java 1.7 特性 try-with-resource 语法糖来打开资源,作用是执行完代码自动关闭资源

调用方法:

第一种:创建单个节点

@GetMapping("add")
public void add(){
    //创建单个节点
    String cql = "create (:Person{name:\"康康\"})";
    neo4jUtil.add(cql);
}

注意:create 语法不会判断当前数据库中是否已经存在节点,只会直接创建节点

为了避免重复创建节点可以使用 merge,使用 merge 也要注意如果数据库没有该节点,则添加该节点,有该节点则查询出该节点(属性、类型有一个不同的都不会被识别为同一个节点,merge时需要写出所有的属性)

结果:

第二种:创建多个节点

String cql = "create (:Person{name:\"李雷\"}) create (:Person{name:\"小明\"})";

结果:

第三种:根据已有节点创建关系

String cql = "match (n:Person{name:\"李雷\"}),(m:Person{name:\"小明\"}) create (n)-[r:friendRelation]->(m)";

结果:

第四种:同时创建节点和关系

String cql = "create (:Person{name:\"张三\"})-[r:friendRelation]->(:Person{name:\"王五\"})";

结果:

项目地址:

https://pan.baidu.com/s/1whwP5b28VlyvDcfeThXmtA 提取码: rd3c

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My name is Red ^^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值