mybatis调用oracle存储过程 怎么获取返回值,mybatis 调用存储过程,获取其返回值(Sql Server)...

创建存储过程

IN为输入值,OUT 为输出值

CREATE PROCEDURE  STAFF_LOGIN(

IN username_ VARCHAR(32),

IN passowrd_ VARCHAR(32),

OUT id_ INT,

OUT sid_ INT,

OUT name_ VARCHAR(20),

OUT gender_ VARCHAR(1),

OUT age_ INT,

OUT title_ VARCHAR(50),

OUT phone_ VARCHAR(11),

OUT admin_ TINYINT,

OUT lastLogin_  datetime

)

BEGIN

SELECT

id,  sid, `name`, gender, age, title, phone, admin, lastLogin  INTO

id_,sid_, name_,gender_, age_,title_,  phone_, admin_,  lastLogin_

FROM

staff

WHERE

username = username_

AND `password` = password_;

UPDATE staff SET lastLogin = now() WHERE username = username_ AND `password` = password_;

END

//INTO  id_,sid_, name_,gender_, age_,title_,  phone_, admin_,  lastLogin_ 是将查询到的值跟输出的值相匹配

--mybatis mapper中编写调用存储过程方法

{call

STAFF_LOGIN(

#{username,mode=IN,jdbcType=VARCHAR},

#{password,mode=IN,jdbcType=VARCHAR},

#{id,mode=OUT,jdbcType=INTEGER},

#{sid,mode=OUT,jdbcType=INTEGER},

#{name,mode=OUT,jdbcType=VARCHAR},

#{gender,mode=OUT,jdbcType=VARCHAR},

#{age,mode=OUT,jdbcType=INTEGER},

#{title,mode=OUT,jdbcType=VARCHAR},

#{phone,mode=OUT,jdbcType=VARCHAR},

#{admin,mode=OUT,jdbcType=TINYINT},

#{lastLogin,mode=OUT,jdbcType=BIGINT}

)}

--Java接口中编写对应方法

public void login(Map map);

--实现类中获取返回值

Map map = new HashMap();

map.put("username", "魔笛");

map.put("password", "qwer");

staffMapper.login(map);

Staff staff = new Staff();

staff.setId((int) map.get("id"));

staff.setSid((int) map.get("sid"));

存储过程返回的值会映射到传递的map中,通过xml中填写的OUT值从map中获取出数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值