Java *** 作neo4j练习

Java *** 作neo4j练习,第1张

使用neo4j进行以下 *** 作

如下图:

  1. 创建歌手、歌曲实体
  2. 创建他们之前关系
  3. 找出周杰伦作曲的歌
  4. 找出周和蔡有交集的所有歌曲
import org.neo4j.driver.v1.*;
import org.neo4j.driver.v1.Record;

import static org.neo4j.driver.v1.Values.parameters;
public class test001 {
    public static void main(String[] args) {
        //连接数据库,注意改成自己的用户名和密码

        Driver driver = GraphDatabase.driver( "bolt://localhost:7687", AuthTokens.basic( "neo4j", "123456" ) );

        Session session = driver.session();
        session.run("MATCH (n) DETACH DELETE n;");
        session.run( "CREATE (n:歌手 {name:'周杰伦'}) RETURN n");
        session.run( "CREATE (n:歌手 {name:'蔡依林'}) RETURN n");
        session.run( "CREATE (n:歌手 {name:'邓紫棋'}) RETURN n");
        session.run( "CREATE (n:歌曲 {name:'倒带'}) RETURN n");
        session.run( "CREATE (n:歌曲 {name:'说爱你'}) RETURN n");
        session.run( "CREATE (n:歌曲 {name:'龙卷风'}) RETURN n");
        session.run( "CREATE (n:歌曲 {name:'烟花易冷'}) RETURN n");
        session.run("MATCH (a:歌手 {name:'周杰伦'}),(b:歌曲 {name:'倒带'}) MERGE (a)-[:作曲]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'周杰伦'}),(b:歌曲 {name:'说爱你'}) MERGE (a)-[:作曲]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'周杰伦'}),(b:歌曲 {name:'龙卷风'}) MERGE (a)-[:作曲]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'周杰伦'}),(b:歌曲 {name:'烟花易冷'}) MERGE (a)-[:作曲]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'周杰伦'}),(b:歌曲 {name:'龙卷风'}) MERGE (a)-[:原唱]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'周杰伦'}),(b:歌曲 {name:'烟花易冷'}) MERGE (a)-[:原唱]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'蔡依林'}),(b:歌曲 {name:'倒带'}) MERGE (a)-[:原唱]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'蔡依林'}),(b:歌曲 {name:'说爱你'}) MERGE (a)-[:原唱]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'邓紫棋'}),(b:歌曲 {name:'说爱你'}) MERGE (a)-[:翻唱]->(b)RETURN a,b");
        session.run("MATCH (a:歌手 {name:'邓紫棋'}),(b:歌曲 {name:'龙卷风'}) MERGE (a)-[:翻唱]->(b)RETURN a,b");
        System.out.println("周杰伦作曲的歌曲有:");
        StatementResult result = session.run( "MATCH (a:歌手{name:'周杰伦'})-[:作曲]->(b:歌曲{})" +"RETURN b.name ");
        StatementResult result0 = session.run( "MATCH (a:歌手{name:'周杰伦'})-[]->(c:歌曲{})<-[]-(b:歌手{name:'蔡依林'})" +"RETURN c.name ");
        while ( result.hasNext() )
        {
            Record record = result.next();
            System.out.println( record.get( "b.name" ).asString() );
        }
        System.out.println("和周杰伦蔡依林有关系的歌曲有:");
        while ( result0.hasNext() )
        {
            Record record = result0.next();
            System.out.println( record.get( "c.name" ).asString() );
        }
        session.close();
        driver.close();
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/905299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存