Java连接Neo4j数据库
Java应用程序中的嵌入式数据库
Neo4j Server是互操作性,安全性和监控的最佳选择。 实际上,REST接口允许所有现代平台和编程语言与它进行互操作。 此外,作为独立应用程序,它比嵌入式配置更安全(客户端中的潜在故障不会影响服务器),并且更易于监控。 如果我们选择使用这种模式,我们的应用程序将充当Neo4j服务器的客户端。
配置文件
<!-- Neo4j dependency -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.2.6</version>
</dependency>
<!-- Neo4j服务器开发需要的jar包 -->
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>1.5.0</version>
</dependency>
配置Neo4j服务器允许远程访问
找到neo4j-community-3.1.3\conf\neo4j.conf 文件,修改
#dbms.connector.http.listen_address=:7474
为 dbms.connector.http.listen_address=0.0.0.0:7474
远程bolt连接:
#dbms.connector.bolt.listen_address=:7687
改为:
dbms.connector.bolt.listen_address=0.0.0.0:7687
服务器开发的代码
public static void main( String[] args ) {
Driver driver = GraphDatabase.driver( "bolt://localhost:7687", AuthTokens.basic( "neo4j", "123456" ) );
Session session = driver.session();
//session.run( "CREATE (a:Person {name: {name}, title: {title}})",parameters( "name", "Arthur001", "title", "King001" ) );
try {
StatementResult result = session.run( "MATCH (a:Subject3) WHERE a.ID3 = {name} " +
"RETURN a.ID3 AS name, a.title AS title",parameters( "name", 30001 ) );
List<Record> records = result.list();
System.out.println("result:"+records.size());
for (Record recordItem : records) {
List<String> list=recordItem.keys();
for (String key:list){
System.out.println("key:"+key);
System.out.println("value:"+recordItem.get(key));
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
driver.close();
}
}
注意:
jdk需要1.8以上。