MyBatis连接Neo4j问题记录:mapper参数传递(节点标签作为参数)
- MyBatis与Neo4j的连接我在上一篇做了,这是链接:https://blog.csdn.net/qq_34233510/article/details/82496101
- 上一篇中
UserMapper.xml
中与传参有关的部分是这样的:
<select id="countUser" parameterType="int" resultMap="userMap">
MATCH ()-[p]->(n:Movie) where id(n)=#{id} RETURN id(n) as id,n.title as title,count(p) as degree
</select>
- 对应的
UserMapper.java
中函数声明如下:
public UserBean countUser(int id) throws Exception;
- 把
id
作为参数传入CQL语句中,因为当时想做id++
操作。 - 后面我换了个思路,想直接一次性把
Movie
标签下所有节点的信息一次都取出来,也就不用循环了。 - 方法是把节点的标签作为参数进行传递,下面是弯路:
第一个版本(去掉where,把Movie改成参数):
<select id="countUser" parameterType="String" resultMap="userMap">
MATCH ()-[p]->(n:#{label}) RETURN id(n) as id,n.title as title,count(p) as degree
</select>
public List<UserBean> countUser(String label) throws Exception;
- 报错了,参数传不过去。。。
- 可能参数应该只能从where子句里面传入~~~
第二个版本(加上where,参数放到where后面):
<select id="countUser" parameterType="String" resultMap="userMap">
MATCH ()-[p]->(n) where (n:#{label}) RETURN id(n) as id,n.title as title,count(p) as degree
</select>
public List<UserBean> UserBean countUser(String label) throws Exception;
- 呃…跟上一版错的一模一样
- 可能
(n:#{label})
这种模式就是传不进去,于是去找获取节点标签的函数,在neo4j里面找到一个:labels(Node)
------------第三个版本(替换(n:#{label})
):
<select id="countUser" parameterType="String" resultMap="userMap">
<!--#{label}的中括号不能丢 -->
MATCH ()-[p]->(n) where labels(n)=[#{label}] RETURN id(n) as id,n.title as title,count(p) as degree
</select>
public List<UserBean> UserBean countUser(String label) throws Exception;
- 完成!
</div>
MyBatis连接Neo4j问题记录:mapper参数传递(节点标签作为参数)的更多相关文章
- Java Maven:spring boot + Mybatis连接MySQL,通用mapper的增删改查,映射实现多表查询
1. MySQL自带库test添加表user.role 角色表role 用户表user 2. 添加依赖,配置属性 相关依赖:百度即可,此处略 application.properties spring ...
- mybatis的mapper参数传递
简单参数传递 简单参数传递是指: 传递单个基本类型参数,数字类型.String 传递多个基本类型参数 parameterType 属性可以省略: 传递单个基本类型参数 SQL语句中参数的引用名称并不 ...
- (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...
- spring boot + mybatis 访问 neo4j
之前有通过rest的风格去访问,但是每次需要访问时候将statement一并加入header中去数据库执行,方式简单.且思路清晰,但是不便于形成模板调用,固采用mybaits来集成. 1.关键pom. ...
- 备忘:mybatis 3的使用记录
这是一篇记录.mybatis是一个部分模仿ORM的framework.是一个介于ORM和原始JDBC的框架.既可以提供ORM的操作对象的特性,又能从详细地控制最终的SQL.达到一个平衡.我们还是得写s ...
- 五、使用druid管理数据库,mybatis连接mysql数据库
简介: 使用 mybatis 连接 mysql 数据库, 一套简单的增删改查流程, 前台用 bootstrap, bootstrap-table 框架, 最后用 druid 监控数据库连接情况 ...
- mybatis的简单使用调用mapper接口
mybatis 是apache下的一个面向sql编程的半自动化的ORM持久层的框架.特点:面向sql编程,达到高性能的使用目的. 下面是简单使用 现导入jar包,只有mybatis和数据库驱动包(这里 ...
- Spring Boot项目中MyBatis连接DB2和MySQL数据库返回结果中一些字符消失——debug笔记
写这篇记录的原因是因为我之前在Spring Boot项目中通过MyBatis连接DB2返回的结果中存在一些字段, 这些字段的元素中缺少了一些符号,所以我现在通过在自己的电脑上通过MyBatis连接DB ...
- Mybatis连接池及事务
一:Mybatis连接池 我们在学习WEB技术的时候肯定接触过许多连接池,比如C3P0.dbcp.druid,但是我们今天说的mybatis中也有连接池技术,可是它采用的是自己内部实现了一个连接池技术 ...
随机推荐
- 从微服务治理的角度看RSocket、. Envoy和. Istio
很多同学看到这个题目,一定会提这样的问题:RSocket是个协议,Envoy是一个 proxy,Istio是service mesh control plane + data plane. 这三种技术 ...
- Django 操作Cookie与Session
目录 Cookie Session Django中操作Cookie 基本操作 基于cookie的登录装饰器 Django中操作Session 基本操作 Session流程解析 基于session的登录 ...
- 2016 CCPC网络选拔赛 部分题解
HDU 5832 - A water problem 题意:有两颗星球,一年的长度分别为37天和173天.问第n天时它们是否为新年的第一天. 思路:显然 n 同时被37和173整除时,两种历法都在新 ...
- badboy的录制和jmeter的使用
v Jmeter是什么 Apache Jmeter是Apache组织开发的基于Java的压力测试工具. Jmeter可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析 ...
- 01-从这里开始js
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- day43作业
注册页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- JavaScript RegExp 对象的三种方法
JavaScript RegExp 对象有 3 个方法:test().exec() 和 compile().(1) test() 方法用来检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回 tr ...
- LUOGU P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
传送门 解题思路 首先第一遍dfs预处理出每个点的子树的siz,然后可以处理出放在根节点的答案,然后递推可得其他答案,递推方程 sum[u]=sum[x]-(val[i]*siz[u])+(siz[1 ...
- pycharm每次新建项目都要重新安装一些第三方库的解决办法(转载防删)
目前有三个解决办法,也是亲测有用的: 第一个方法:因为之前有通过pycharm的project interpreter里的+号添加过一些库,但添加的库只是指定的项目用的,如果想要用,就必须用之前的项目 ...
- MATLAB技巧—sort和sortrows函数
MATLAB技巧-sort和sortrows函数 1.sort函数 sort函数用于对数据进行排序,通过help sort命令,可以查找到sort函数的具体用法: Y = SORT(X,DIM,MOD ...