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中也有连接池技术,可是它采用的是自己内部实现了一个连接池技术 ...
随机推荐
- 两个datagrid的数据移动(支持多选)
1.需求 :点击卸车和撤销按钮可以实现 1和2 之间数据的移动(支持多选) 2. 代码 (这里只写一个撤销的功能) //撤销按钮 function moveOut() { var item = $(' ...
- SQLServer中使用索引视图
在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你 ...
- Python学习day06-Python基础(4)流程控制之while和for循环
Python学习day06-流程控制之while和for循环 Python学习day06-流程控制之while和for循环while循环1. 语法2. while+break,while+contin ...
- 在当前目录打开DOS命令行窗口
[step1]选中文件夹 [step2]shift + 鼠标右键
- 订单风险系统BI
最近被公司叫去协助传统做维表查询服务,项目已经做完.和前端联调过程发现oracle对查询 sql和产品设计还是挺重要的.不能全部堆给代码去做,如何方便代码,代码优化到最高性能才是首要解决的事,前端才能 ...
- linux服务器之间传输文件
转载:https://www.jb51.net/article/82608.htm 1. scp(最近就使用了scp) [优点]简单方便,安全可靠:支持限速参数 [缺点]不支持排除目录[用法]scp就 ...
- PHP 类与对象 全解析方法
1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用�php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑 ...
- Ionic 日期时间插件
1.插件安装 日期插件 时间插件 备注: 具体 查看 https://github.com/rajeshwarpatlolla/ionic-datepicker https://github.c ...
- LUOGU P1965 转圈游戏 (Noip 2013)
传送门 解题思路 比较简单的模拟题,转圈一定有一个循环节,而且循环节长度一定小于m,因为循环节是一个%m的剩余系,然后一遍模拟记录下来循环节,快速幂即可. #include<iostream&g ...
- 主成分分析(PCA)原理详解_转载
一.PCA简介 1. 相关背景 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律.多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上 ...