neo4j图形数据库第五弹——整合springboot(支持查询属性)

版权声明:博主原创,未经允许不得转载。 https://blog.csdn.net/qq_31748587/article/details/84392092

正经学徒,佛系记录,不搞事情

基于上文:https://blog.csdn.net/qq_31748587/article/details/84308573 的项目

可以获取节点的属性值

 或者统计返回的具体值

工具类方法相对更简单些

工具类 Neo4jUtil 中添加方法 getFields 对返回的属性进行解析

    /**
     * cql 返回具体的属性, 如match (n)-[]-() return n.id,n.name,match (n)-[]-() return count(n)
     * @param cql 查询语句
     * @return List<Map<String,Object>>
     */
    public static List<Map<String, Object>> getFields(String cql) {
        List<Map<String, Object>> resList = new ArrayList<>();
        try {
            Session session = driver.session();
            StatementResult result = session.run(cql);
            List<Record> list = result.list();
            for (Record r : list) {
                resList.add(r.asMap());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resList;
    }

调用方法:

    @GetMapping("getFields")
    public Map<String, Object> getFields(){
        Map<String, Object> retMap = new HashMap<>();
        //cql语句
        String cql = "match (n:Person{name:\"Anthony Edwards\"}) return n.name as name,n.born as born";
        //String cql = "match (n:Person) return count(n) as cou";
        retMap.put("fieldList",neo4jUtil.getFields(cql));
        return retMap;
    }

这里返回的节点属性最好通过 as 转换别名,否则查询的结果会是这样的

查询统计函数(或其他函数)的结果

项目地址:

https://pan.baidu.com/s/1Yub6WEdcs1TJh9DuYqo_mQ 提取码: rdb1

猜你喜欢

转载自blog.csdn.net/qq_31748587/article/details/84392092
今日推荐