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

首先创建 存储过程

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. mac快捷键留存查看

    基本的快捷键 Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl.所以以下最基本操作很好理解: Command-Z 撤销 Command-X 剪切 Command- ...

  2. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub

    上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...

  3. libvirt_python

    一.Connections 连接函数接口libvirt.open(name); //可读写方式连接上QEMU 参数说明: name:连接名称libvirt.openAuth(uri, auth, fl ...

  4. Vue + vant-UI 打造移动商城

  5. 通用技术 mysql 亿级数据优化

    通用技术 mysql 亿级数据优化 一定要正确设计索引 一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描) 一定要避免 lim ...

  6. centos下搭建Jenkins持续集成环境(安装jenkins)

    1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...

  7. tft屏图像文字一起显示

    2010-05-04 21:06:00 M16内部flash只有16k,要做数码相框,只能用usart通信了.明天继续研究.

  8. tornado 初识

    Tornado 是一个Python Web框架和异步网络库,最初是在FriendFeed上开发的. 通过使用非阻塞网络I / O,Tornado可以扩展到数万个开放连接,使其成为长轮询, WebSoc ...

  9. Step2:SQL Server 复制事务发布

    一.背景 在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到 ...

  10. 前端框架VUE----面向对象

    JavaScript 语言中,生成实例对象的传统方法是通过构造函数. function Animal(name,age){ this.name = name; this.age = age; } An ...