Neo4j Java Driver


官方提供的neo4j驱动程序,基于binary Bolt Protocol协议通信,用于执行Cypher脚本,类似jdbc driver;

优点:简单方便,多语言客户端支持;

缺点

  • 过于原始,需要熟悉Cypher语言,需要自己管理会话、事务等;
  • 需要做neo4j的domain对象和java bean之间的转换工作,过于繁琐;
  • 对于HA部署,无法支持负载分发、读写分离等特性;

demo

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

session.run( "CREATE (a:Person {name: {name}, title: {title}})",
        parameters( "name", "Arthur", "title", "King" ) );

StatementResult result = session.run( "MATCH (a:Person) WHERE a.name = {name} " +
                                      "RETURN a.name AS name, a.title AS title",parameters( "name", "Arthur" ) );
while ( result.hasNext() )
{
    Record record = result.next();
    System.out.println( record.get( "title" ).asString() + " " + record.get( "name" ).asString() );
}

session.close();
driver.close();

Using the HTTP API


neo4j提供了一套http api接口,通过http+json的形式执行Cypher脚本。

优点:跨语言访问;

缺点:

  • 性能相对较低;
  • json拼接和解析麻烦;
  • 对于HA部署,无法支持负载分发、读写分离等特性;

demo

  https://neo4j.com/docs/rest-docs/3.1/

OGM(Object Graph Mapper) 工具


neo4j官方提供的neo4j domain对象到POJO的转换工具,支持基于Bolt、HTTP、Embedded三种访问形式的对象转化。

优点:提供注解形式,适用方便;

缺点:只是一个工具,基于Bolt形式,还是要写Cypher,基于Http形式还是要解析json~

demo:

  https://neo4j.com/docs/ogm-manual/2.1/tutorial/

Spring Data Neo4j


基本功能:

  • 通用的Spring与Spring Data基础设施。你可以轻松将Neo4j嵌入到Spring框架所管理的现有应用当中。
  • 通过注解来声明结点以及结点之间的关系。
  • 代码很容易理解。
  • 实体状态由图型数据库所维护。
  • 支持Neo4j服务器。
  • 支持HA访问

文档:http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/\#reference:configuration

demo:https://github.com/neo4j-examples/sdn4-cineasts/wiki

参考:https://www.infoq.com/minibooks/good-relationships-spring-data,GoodRelationships, spring data neo4j的作者编写

results matching ""

    No results matching ""