网络上写的一堆都不能用的 好吧..

首先创建 存储过程

DROP PROCEDURE IF EXISTS dfsSons;

CREATE PROCEDURE dfsSons(IN rootid INT)
BEGIN
DECLARE dep INT;
DROP table if exists tmplist;
create table tmplist(
id int,
depth int
);
SET dep = 0;
insert into tmplist select file_relation_id, dep from file_relation
where file_relation_id = rootid;
WHILE ROW_COUNT() > 0 DO
SET dep = dep+1;
insert into tmplist
select A.file_relation_id, dep from file_relation as A, tmplist as B
where A.parent_id = B.id and B.depth = dep - 1;
END WHILE;
END$$ CALL dfsSons(7);

然后在Dao层编写具体的方法

需要maven中引入jpa,

本例中实际上不需要返回值,但是mybatis会有返回值,使用void会报错,这里用HashMap兼容了。

使用的注解和查询一样,但是要指定statementType为CALLABLE。

@SuppressWarnings("rawtypes")
@Select("call dfsSons(#{rootid})")
@Options(statementType= StatementType.CALLABLE )
public HashMap getTableOfDelete(@Param("rootid") int parent_id);

单元测试

@Test
public void testDelete() {
int parent_id = 7;
fileRelationDao.getTableOfDelete(parent_id);
List<Integer> lists = fileRelationDao.selectNeedDeleteId();
System.out.println(lists.size());
}

大功告成...

SpringBoot 调用 mysql存储过程的实战的更多相关文章

  1. PHP调用MYSQL存储过程实例

    PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = ...

  2. 调用MYSQL存储过程实例

    PHP调用MYSQL存储过程实例 http://blog.csdn.net/ewing333/article/details/5906887 http://www.cnblogs.com/kkchen ...

  3. Golang 用go-sql-driver 调用MySQL存储过程时的问题排查

    今天在用go-sql-driver做MySQL driver调用MySQL的存储过程时遇到一个罕见的报错.本文对这个错误及其解做一个简单的总结. 1 问题描述 按照go中sql包提供的接口,应用层代码 ...

  4. spring mybatis 3.2调用mysql存储过程返回多结果集(完整、亲测、可用)

    最近,有个开发提了个需求,希望中间件支持调用mysql存储过程时支持多结果集返回,因为某些原因我们使用了不少的存储过程,很多复杂的逻辑目前来看交互非常的多,所以从当前的现状来说,这个需求还是蛮合理的. ...

  5. 使用C语言调用mysql数据库编程实战以及技巧

    今天编写使用C语言调用mysql数据库编程实战以及技巧.为其它IT同行作为參考,当然有错误能够留言,共同学习. 一.mysql数据库的C语言经常使用接口API 1.首先当然是链接数据库mysql_re ...

  6. java, mybatis, 调用mysql存储过程

    Map<String, Object> bindinfo = new HashMap<String, Object>();            bindinfo.put(&q ...

  7. PHP多次调用Mysql存储过程报错解决办法

    PHP多次调用Mysql数据库的存储过程会出现问题,主要问题为存储过程中执行多次SQL语句不能一一释放导致的,网上找了一些解决办法,比如使用 multi_query 然后一个一个释放,但是发现根本不适 ...

  8. Java调用MySQL存储过程

    Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse 首先查看MySQL中的数据库的存储过程,接着编写代码调用 mysql> show procedure status; + ...

  9. php调用mysql存储过程

    MYSQL存储过程 原文链接:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 一.存储过程简介(mysql5.0以上支持) 我们常用的操作数据 ...

随机推荐

  1. 爬取笔下wenxue小说

    import urllib.request from bs4 import BeautifulSoup import re def gethtml(url): page=urllib.request. ...

  2. centos下mysql 5源码安装全过程记录

    参考:http://blog.csdn.net/mycwq/article/details/24488691 安装cmake,mysql 5.5以后的版本要通过cmake进行编译 在新装的CentOS ...

  3. jQuery效果--show([speed,[easing],[fn]])和hide([speed,[easing],[fn]])

    hide([speed,[easing],[fn]]) 概述 隐藏显示的元素 这个就是 'hide( speed, [callback] )' 的无动画版.如果选择的元素是隐藏的,这个方法将不会改变任 ...

  4. Permutation Bo (数学证明)

    当在两端时:共有n * (n - 1)种组合,满足条件的有,计算可得, counter = n * (n - 1) / 2. 其他位置时:共有n * (n - 1) * (n - 2) 种组合,满足条 ...

  5. 【CDH学习之二】ClouderaManager安装

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 zookeeper-3.4.11 搭建方案:   serve ...

  6. python的print函数自动换行及其避免

    print函数自带换行功能,即在输出内容后会自动换行,但是有时我们并不需要这个功能,那怎么办呢?这时候就需要用到end这个参数了,使用方法参考下面这段打印$矩阵的代码: i = 1 while i&l ...

  7. Linux基础命令---显示文本look

    look 显示文件中以特定字符串开始的行.在look执行二进制搜索时,必须对文件中的行进行排序.如果未指定文件,则使用文件“/usr/share/dict/words“,只比较字母数字字符,忽略字母字 ...

  8. nfs共享文件搭建

    Linux NFS服务器的安装与配置详解 一.NFS服务简介  NFS是Network  File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端 ...

  9. Java五大框架

    2017-6-13 Lifusen 此文章仅代表个人观点,如有问题提出请联系Q:570429601 1.Hibernate (开放源代码的对象关系映射框架) Hibernate是一个开放源代码的对象关 ...

  10. ==和equasl、hashmap原理(***)

    public class String01 { public static void main(String[] args) { String a="test"; String b ...