Mybatis调用存储过程

来源:互联网 发布:visor是什么软件 编辑:程序博客网 时间:2024/06/05 21:09

关于如何调用存储过程,我在这里贴上用Mybatis调用的代码:

因为我传多个参数,所以我这里用map作为参数,传到xml的参数类型为map

Map<String,Integer> map=new HashMap<String,Integer>();map.put("num", num);//所需号码数量map.put("gid", indiana.getGid());//货品IDmap.put("bid", indiana.getBid());//商品ID/* 生成夺宝码 */indianaCodeService.saveCode(map);

  然后xml文件里:

<select id="saveCode"  statementType="CALLABLE" parameterType="map" >           {             call sp_saveCode(                             #{num,jdbcType=INTEGER,mode=IN},                            #{gid,jdbcType=INTEGER,mode=IN},                            #{bid,jdbcType=INTEGER,mode=IN}                          )             } </select>


  这里注明statementType="CALLABLE"表示调用存储过程,call后写你需要调用的存储过程的名字

DROP PROCEDURE IF EXISTS `sp_saveCode`;CREATE DEFINER = `root`@`%` PROCEDURE `sp_saveCode`(IN num INT,in gid int,in bid int)BEGIN  DECLARE i int;DECLARE codes INT;set i=1;while i<=num doSET codes=10000000+i;insert into tindianacode(gid,bid,code,state) values(gid,bid,codes,0);set i=i+1;end while;END;


这样就能再mybatis里调用你写的存储过程了


0 0
原创粉丝点击