文章摘要
这篇文章介绍如何在PHP中使用Mybatis调用Oracle存储过程,并接收返回值。文章首先定义了一个存储过程P_TEST_MYBATIS,用于从Oracle表中查询记录数,并通过Exception部分处理其他错误。接着,文章将该存储过程包装为callable,并在Map对象中设置参数iv_ins1、iv_ins2和ov_res。在执行方法中,使用Map将参数传递给调用器,并通过mapper.exec(map)调用存储过程。最终将返回值ov_res转换为整数并返回。文章强调了通过Map对象自动处理参数传递的便捷性。
目录存储过程mapper.xmldao层调用
PROCEDURE P_TEST_MYBATIS(iv_ins1 IN VARCHAR2, –id
iv_ins2 IN VARCHAR2, –no
ov_res OUT number –提示信息
) IS
BEGIN
ov_res :=0;
select count(1)
into ov_res
from jc_zhiydoc t
where t.zhiy_id=iv_ins1
and t.zhiy_no=iv_ins2;
iv_ins2 IN VARCHAR2, –no
ov_res OUT number –提示信息
) IS
BEGIN
ov_res :=0;
select count(1)
into ov_res
from jc_zhiydoc t
where t.zhiy_id=iv_ins1
and t.zhiy_no=iv_ins2;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
这里我是在pkg_ck_task包下面的存储过程
<select id=”exec” statementType=”CALLABLE”>
call pkg_ck_task.P_TEST_MYBATIS(
#{iv_ins1},
#{iv_ins2},
#{ov_res,jdbcType=INTEGER,mode=OUT}
)
call pkg_ck_task.P_TEST_MYBATIS(
#{iv_ins1},
#{iv_ins2},
#{ov_res,jdbcType=INTEGER,mode=OUT}
)
</select>
void exec(Map<String,Object> params);
public int exec(){
Map<String,Object> map=new HashMap<>();
map.put(“iv_ins1″,”ZIY00007709”);
map.put(“iv_ins2″,”0103”);
mapper.exec(map);
int res=(int)map.get(“ov_res”);
return res;
}
Map<String,Object> map=new HashMap<>();
map.put(“iv_ins1″,”ZIY00007709”);
map.put(“iv_ins2″,”0103”);
mapper.exec(map);
int res=(int)map.get(“ov_res”);
return res;
}
结果:

到此这篇关于mybatis 调用 Oracle 存储过程 并接受返回值 _的文章就介绍到这了,更多相关mybatis 调用 Oracle 存储过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:Mybatis调用Oracle存储过程的方法图文详解Mybatis传list参数调用oracle存储过程的解决方法
© 版权声明
文章版权归作者所有,未经允许请勿转载。



