public static HashMap>>> executeFindNodeCypher(String cypher) { Map >> retuMap = new HashMap >>(); GraphDatabaseConnection(); Session session = driver.session(); Result result = session.run(cypher); List >> nodedatas;// 存放所有的节点数据 nodedatas = new ArrayList >>(); List >> allrelationships; allrelationships= new ArrayList >>();// 存放所有的关系数据 while (result.hasNext()) { Record record = result.next(); Map date = record.asMap(); for (String key : date.keySet()) { Object object = date.get(key); if(object.getClass().isAssignableFrom(InternalNode.class)){ InternalNode data = (InternalNode) object; Map data1 = data.asMap(); HashMap > node = new HashMap >(); HashMap nodelable = new HashMap (); nodelable.put("id",""+data.id()); nodelable.put("labels",data.labels().toString()); nodelable.put("props",data1); node.put("node",nodelable); nodedatas.add(node);} else{ InternalRelationship relationdatas = (InternalRelationship) object; HashMap > Relations; Relations= new HashMap >(); HashMap relationlabels = new HashMap (); HashMap > relationprops = new HashMap >(); Map props = relationdatas.asMap(); relationlabels.put("id",relationdatas.id()); relationlabels.put("start",relationdatas.startNodeId()); relationlabels.put("end",relationdatas.endNodeId()); relationlabels.put("type",relationdatas.type()); relationlabels.put("props",props); Relations.put("ralation",relationlabels); allrelationships.add(Relations); System.out.println(Relations); } }} HashMap >>> graphdatas; graphdatas= new HashMap >>>(); graphdatas.put("Ralitions",allrelationships); graphdatas.put("Nodes",nodedatas); return graphdatas; } }
利用Session进行数据库查询,返回的数据为neo4j的Record格式数据,进行数据遍历,得到InternalNode与InterRelationShip格式数据,随后,进行数据组装,由于采用的是前后端分离的开发模式,虽然两端都是我自己,但是我认为要把数据库里有的数据都返回到前端,为以后的可视化开发做准备。
心得:
在java的学习与使用中渐渐爱上了这种语言,严谨,效率。快速开发Web应用我虽然还会选择Python,但是写java的感觉让我更加迷恋。这次采用了SpringBoot框架+Vue框架进行协同开发,自我感觉可以使组内框架在未来三年里不至于落后的太严重,也可以为组件扩展提供更大的便利。



