CREATE (陈冠希:明星 {名称: "陈冠希"}), (王菲:明星 {名称: "王菲"}), (李亚鹏:明星 {名称: "李亚鹏"}), (瞿颖:明星 {名称: "瞿颖"}), (张柏芝:明星 {名称: "张柏芝"}), (谢霆锋:明星 {名称: "谢霆锋"}), (周迅:明星 {名称: "周迅"}), (张亚东:明星 {名称: "张亚东"}), (窦唯:明星 {名称: "窦唯"}), (窦鹏:明星 {名称: "窦鹏"}), (李大齐:明星 {名称: "李大齐"}), (朴树:明星 {名称: "朴树"}), (窦颖:明星 {名称: "窦颖"}), (梁朝伟:明星 {名称: "梁朝伟"}), (刘嘉玲:明星 {名称: "刘嘉玲"}), (周迅)-[:旧爱]->(窦鹏), (周迅)-[:旧爱]->(李大齐), (周迅)-[:旧爱]->(朴树), (周迅)-[:旧爱]->(李亚鹏), (周迅)-[:绯闻]->(梁朝伟), (周迅)-[:绯闻]->(谢霆锋), (王菲)-[:离异]->(李亚鹏), (王菲)-[:旧爱]->(谢霆锋), (王菲)-[:离异]->(窦唯), (谢霆锋)-[:旧友]->(陈冠希), (谢霆锋)-[:离异]->(张柏芝), (张亚东)-[:制作人]->(朴树), (张亚东)-[:离异]->(窦颖), (张亚东)-[:制作人]->(王菲), (李亚鹏)-[:旧爱]->(瞿颖), (陈冠希)-[:旧爱]->(张柏芝), (瞿颖)-[:旧爱]->(张亚东), (窦唯)-[:堂兄弟]->(窦鹏), (窦唯)-[:兄妹]->(窦颖), (梁朝伟)-[:夫妻]->(刘嘉玲), (王菲)-[:好友]->(刘嘉玲)
MATCH (n:明星) RETURN n
效果:
直接关系
MATCH m=(:明星 {名称:"周迅"})-[*..1]-() RETURN m
最短路径
MATCH p = AllShortestPaths( (周迅:明星 {名称:"周迅"})-[*..6]-(王菲:明星 {名称:"王菲"}) ) RETURN p
效果:
MATCH p=(()<-[:旧爱]-()-[:旧爱]->()) RETURN p LIMIT 50
MATCH p=(()<-[:旧爱]-()<-[:旧爱]-()-[:旧爱]->()) RETURN p LIMIT 50
MATCH p=(()<-[:旧爱]-()<-[:旧爱]-()) RETURN p LIMIT 50
直接上代码.
bolt连接:
package com; import org.neo4j.driver.v1.AuthTokens; import org.neo4j.driver.v1.Driver; import org.neo4j.driver.v1.GraphDatabase; import org.neo4j.driver.v1.Session; import org.neo4j.driver.v1.StatementResult; import org.neo4j.driver.v1.Transaction; import org.neo4j.driver.v1.TransactionWork; import static org.neo4j.driver.v1.Values.parameters; public class HelloWorldExample implements AutoCloseable { private final Driver driver; public HelloWorldExample(String uri, String user, String password) { driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password)); } @Override public void close() throws Exception { driver.close(); } public void printGreeting(final String message) { try (Session session = driver.session()) { String greeting = session .writeTransaction(new TransactionWork<String>() { @Override public String execute(Transaction tx) { StatementResult result = tx .run("CREATE (a:Greeting) " + "SET a.message = $message " + "RETURN a.message + ', from node ' + id(a)", parameters("message", message)); return result.single().get(0).asString(); } }); System.out.println(greeting); } } public static void main(String... args) throws Exception { try (HelloWorldExample greeter = new HelloWorldExample( "bolt://localhost:7687", "neo4j", "123456")) { greeter.printGreeting("hello, world"); } } }
package com; import static org.neo4j.driver.v1.Values.parameters; import java.util.HashMap; import java.util.Map; import org.neo4j.driver.v1.AuthTokens; import org.neo4j.driver.v1.Driver; import org.neo4j.driver.v1.GraphDatabase; import org.neo4j.driver.v1.Record; import org.neo4j.driver.v1.Session; import org.neo4j.driver.v1.StatementResult; import org.neo4j.driver.v1.Value; public class Neo4jBoltAPIDBOperation { public static void main(String[] args) { // TODO Auto-generated method stub Driver driver = GraphDatabase.driver("bolt://127.0.0.1:7687", AuthTokens.basic("neo4j", "123456")); Session session = driver.session(); session.run("CREATE (a:Person {name: {name}, title: {title}})", parameters("name", "gm", "title", "King")); StatementResult result = session.run( "MATCH (a:Person) WHERE a.name = {name} " + "RETURN a.name AS name, a.title AS title", parameters("name", "gm")); while (result.hasNext()) { Record record = (Record) result.next(); System.out.println(record.get("title").asString() + " " + record.get("name").asString()); } session.close(); driver.close(); } }
直接操作数据库文件(确保服务已关闭):
package com; import java.io.File; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.factory.GraphDatabaseFactory; public class Neo4jJavaAPIDBOperation { public static void main(String[] args) { GraphDatabaseFactory dbFactory = new GraphDatabaseFactory(); GraphDatabaseService db = dbFactory.newEmbeddedDatabase(new File("E:/neo4j-community-3.3.5/data/databases/graph.db")); try (Transaction tx = db.beginTx()) { Node javaNode = db.createNode(Tutorials.JAVA); javaNode.setProperty("TutorialID", "JAVA001"); javaNode.setProperty("Title", "Learn Java"); javaNode.setProperty("NoOfChapters", "25"); javaNode.setProperty("Status", "Completed"); Node scalaNode = db.createNode(Tutorials.SCALA); scalaNode.setProperty("TutorialID", "SCALA001"); scalaNode.setProperty("Title", "Learn Scala"); scalaNode.setProperty("NoOfChapters", "20"); scalaNode.setProperty("Status", "Completed"); Relationship relationship = javaNode.createRelationshipTo( scalaNode, TutorialRelationships.JVM_LANGIAGES); relationship.setProperty("Id", "1234"); relationship.setProperty("OOPS", "YES"); relationship.setProperty("FP", "YES"); tx.success(); } System.out.println("Done successfully"); } }
package com; import org.neo4j.graphdb.Label; public enum Tutorials implements Label { JAVA,SCALA,SQL,NEO4J; }
package com; import org.neo4j.graphdb.RelationshipType; public enum TutorialRelationships implements RelationshipType { JVM_LANGIAGES, NON_JVM_LANGIAGES; }
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> <artifactId>neo4j</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j</artifactId> <version>3.3.5</version> </dependency> <dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>1.4.4</version> </dependency> </dependencies> <build /> </project>
与Spring集成未完待续、、、