oracle企业项目存储过程,mybatis项目中如何调用oracle存储过程(procedure)

如题。这篇博客讲诉你如何在在spring+springmvc+mybatis项目中调用oracle的存储过程(procedure),其实主要是mybatis下如何调用存储过程,不带参数的就不说了,就说说带参数的存储过程如传参,获取参数。

1、先在oralce写一个存储过程

create or replace procedure p_test(

v_val1 in varchar2,

v_val2 out varchar2

) is

v_val3 varchar2(10) :='word';

begin

v_val2 := v_val1||v_val3;

end;

这个过程什么意思呢?很简单输入一个v_val1,过程定义了一个参数v_val3,v_val2 =v_val1+v_val3,输出v_val2。顺便说下怎么在oralce里调用存储过程:

declare

v_test1 varchar2(10);

begin

p_test('hello ',v_test1);

dbms_output.put_line(v_test1);

end;

很明显,输出的是hello word

现在进入正题,怎么在mybatis中调用呢?

先建立个xml文件,具体怎么建xml文件或者怎么在springmvc项目中调用mybatis的xml文件等等基础问题,请看我上一篇博客,步步为营搭建spring+springmvc+mybatis项目。

然后写下sql语句,内容如下:

{call p_test(#{val1,mode=IN,jdbcType=VARCHAR},#{val2,mode=OUT,jdbcType=VARCHAR})}

java里这么调用

Map map = new HashMap();

map.put("val1","hello ");

testMapper.getProcedure(map);//说一下,testMapper持久层的对象,直接调用testMapper这个方法,该方法不需要返回值,void即可

System.out.println(map.get("val2"));

这时输出的就是hello word了。

特别申明!特别申明!特别申明!

调用存储过程时,xml里不要有乱七八糟的格式,有些程序员习惯美化自己的代码,这个是好事,但是在这里可能会搬起石头砸自己的脚,比如有人喜欢这样:

{

call p_test(#{val1,mode=IN,jdbcType=VARCHAR},#{val2,mode=OUT,jdbcType=VARCHAR})

}

看着是不是很清爽?是很清爽,但是会报空指针的错误,所以我提醒各位,这会就不要管代码是不是好看了,能用就行,在{}之间不要换行!不要换行!不要换行!不要换行!不要换行!不要换行!不要换行!

重要的事情要说7遍,有人问空格可不可以加,那我只能说,你开心就好。

当然,有些复杂的存储过程参数很多,很长,写一行不太方便阅读,怎么办?其实可以在参数中间换行的,比如这样:

{call p_test(#{val1,mode=IN,jdbcType=VARCHAR},

#{val2,mode=OUT,jdbcType=VARCHAR})}

这样还是可以的。

代码手打,难免有漏字、错字、描述不清现象,欢迎大家批评指教,切勿人身攻击,如果觉得有用,就告诉我一声,给我点鼓励!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值