1.引言
这里的Java操作Neo数据库使用的是嵌入式模式,Neo4j可分为嵌入式模式和服务端模式,两者的区别可以查看方案(https://blog.csdn.net/regan_hoo/article/details/78771888)
也可以查看《Neo4j实战 》这本书的第10章,上面有详细讲解(需要电子版的可以找我)。
我们构造一个案件的场景。比如一个案件中有多个嫌疑人,有的嫌疑人参与了多个案件。
2 程序代码
pom
org.neo4j
neo4j
3.3.5
Java代码
package neo4j;
import org.neo4j.graphdb.*;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.graphdb.index.Index;
import org.neo4j.graphdb.traversal.Evaluators;
import org.neo4j.graphdb.traversal.TraversalDescription;
import java.io.File;
import java.util.Iterator;
/**
* Created by cgz on 2018-04-17 15:29
* 描述:
*/
public class CaseInfoAs {
// private static final String DB_PATH = "testgraph.db";
private static final String DB_PATH = "E:\\soft\\neo4j-community-3.3.5\\data\\databases\\graph.db";
private GraphDatabaseService graphDB;
private enum RelTypes implements RelationshipType {
CRIME, LINK
}
public void init() {
graphDB = new GraphDatabaseFactory().newEmbeddedDatabase(new File(DB_PATH));
}
/**创建数据*/
public void create() {
Transaction tx = graphDB.beginTx();
Node case1 = graphDB.createNode(new CaseLabel("CASEINFO"));
case1.setProperty("name", "案件1");
case1.setProperty("address", "南山");
Node case2 = graphDB.createNode(new CaseLabel("CASEINFO"));
case2.setProperty("name", "案件2");
case2.setProperty("address", "福田")