使用neo4j进行以下 *** 作
如下图:
- 创建歌手、歌曲实体
- 创建他们之前关系
- 找出周杰伦作曲的歌
- 找出周和蔡有交集的所有歌曲
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();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)