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中也有连接池技术,可是它采用的是自己内部实现了一个连接池技术 ...
随机推荐
- 为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字)
为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字) 在PyData Seattle 2017中,Jake Vanderplas介绍了Python的发展历程以及最新动态.在这里我们把 ...
- v-bind:class
<!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...
- CF #578 Div2
// 比赛链接:https://codeforces.com/contest/1200 A - Hotelier 题意: 有一家旅馆有10间房,编号0~9,从左到右顺序排列.旅馆有左右两扇门,每次新来 ...
- ps命令详解-转
名称:ps使用权限:所有使用者使用方式:ps [options] [--help]说明:显示瞬间行程 (process) 的动态参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A ...
- <每日一题>题目8:文件备份V1.0
import os #备份文件的路径 file_address = input("输入需要备份文件所在的路径:") os.chdir(file_address) #备份文件命名 f ...
- [转]WPF中Binding的技巧
在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到过的问题做下汇总记录和理解. 1. so ...
- 廖雪峰Java10加密与安全-2加密算法-1URL编码
1.URL编码 URL编码是浏览器发送数据给服务器时使用的编码. 如通过百度搜索美女: 编码前:https://www.baidu.com/s?wd=美女 编码后:https://www.baidu. ...
- 模板:KD-Tree
KD-Tree,用来解决多维空间中的问题,其实就是优化暴力(逃 一般cdq能做的它都能做,而且...既然是优化暴力,那就学习一下了 对与几个n维点,我们将它每一维分割,建立一颗二叉树,方便我们搜索剪枝 ...
- 计算机基础(day02)
目录 什么是编程? 计算机的组成 CPU(大脑) 控制器 运算器 存储器 主存 外存 IO设备 input设备(输入设备) output设备(输出设备) 多核cpu 32位和64位 机械硬盘工作原理 ...
- JAVA开源微信管家平台——JeeWx捷微V3.3版本发布(支持微信公众号,微信企业号,支付窗)
JeeWx捷微V3.3版本紧跟微信小程序更新,在原有多触点版本基础上,引入了更多的新亮点:支持微信公众号.微信企业号.支付宝服务窗等多触点开发:采用微服务框架实现,可插拔可集成,轻量级开发:对小程序的 ...