Bootstrap

spring mysql存储过程_SpringBoot 调用 mysql存储过程的实战

网络上写的一堆都不能用的 好吧.. 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);

需要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 lists = fileRelationDao.selectNeedDeleteId(); System.out.println(lists.size()); }

大公告成...

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;