利用java取得neo4j中的节点信息
neo4j中的某节点信息如下:
控制台打印的数据如下:
效果如上图所示:可知,我从neo4j中取了一个节点的全部信息,这些信息包括:节点类型、名称、编号、内容。其中后三点是节点的属性,下面详细讨论怎样得到这些信息
注意:这里得到信息的过程可能有点复杂,需要仔细了解每一步的返回信息,对于新手,光靠记忆可能有点困难,所以可以使用Ctrl+鼠标,查看相应类的源代码,以便了解具体返回的信息是什么
1、得到driver(这一步是操作neo4j最基础的一步)
代码段
static Driver driver = null;
public static void getDriver(){
String uri = "Bolt://localhost:7687";
String user = "";//写你自己的neo4j的用户名
String password = "";//写你自己的neo4j的密码
driver = GraphDatabase.driver(uri, AuthTokens.basic(user,password));
}
代码说明:这一步官网文档中给出了详细的代码,如果不会,请看官方文档,(文档地址:https://neo4j.com/docs/api/java-driver/current/)
2、关闭driver
代码段
public static void close(){
if(driver!=null){
driver.close();
}
}
代码说明:注意,并不是得到driver都马上关闭driver,这里之所以先写“关闭driver”,是因为我在写代码的时候,将这段代码写在了前面,后面调用方法即可
3、得到节点信息
代码段
//node
public static void getNodesInfo(String cypher){
getDriver();
try(Session session = driver.session()){
StatementResult result = session.run(cypher);
while(result.hasNext()){
Record record = result.next();
List value = record.values();
for(Value i:value){
Node node = i.asNode();
Iterator keys = node.keys().iterator();
Iterator nodeTypes = node.labels().iterator();
String nodeType = nodeTypes.next().toString();
System.out.println("节点类型:"+nodeType);
System.out.println("节点属性如下:");
while(keys.hasNext()){
String attrKey = (String)keys.next();
String attrValue = node.get(attrKey).asString();
System.out.println(attrKey+"-------"+attrValue);
}
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
}
}
close();
}
代码说明:
利用Session,(官方文档的代码,复制粘贴即可)
得到StatementResult,这里可以看到和关系数据库有点相似,来得到查询结果
每条查询结果都是以一个Record返回,而Record中可能包含两种类型——Node,和Path
最后注意调用close()方法
4、在main函数中调用上面方法
代码段
public static void main(String... args){
String cypher = "match (n:数据库章节) return n";
getNodesInfo(cypher);
}
最后,控制台打印的结果如下:
结果说明:前提是你的neo4j中有该类型的节点,并有这些属性(其实这些都不重要,上述代码是针对所有情况的,包括返回多节点情况,你大可自己随便创建节点,只需要更改cypher语句即可)
利用java取得neo4j中的节点信息源码浏览地址:
https://github.com/mp2930696631/visualization-neo4j-using-java/blob/master/preparations/GetNodes.java
基础知识三:利用java取得neo4j中的节点信息
标题
坚持努力,因为最后你会发现
努力了这么久
我怎么舍得放弃
领取专属 10元无门槛券
私享最新 技术干货