搜遍官网和英文手册,也找不到ibatis三调用储存历程示范,无奈看了一下子源代码。花了三个钟头,总算试出来了,觉着自个儿老了,分析问题好慢呀。(网上大多是ibatis二的例证)
1. 第一oracle创设一个最简略的储存历程:
Java代码
一.create or replace procedure pp(x in number, y in number ,z out number ) is
2. begin
3. select x + y into z from dual;
四.end pp;
create or replace procedure pp(x in number, y in number ,z out number ) is
begin
select x + y into z from dual;
end pp;
很简单,储存进程名字叫pp,传到两个输入参数,其后z是输出参数,算两者之和。
2. 在投射资料中
Java代码
1.
2. 3. PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
4. "http://ibatis.apache.org/dtd/ibatis-三-mapper.dtd">
5.
6.
{call pp(#{x},#{y},#{z,mode=OUT,jdbcType=INTEGER})}
上头id随意取,statementType是关健,这边可以是"STATEMENT","PREPARED","CALLABLE"(调用储存历程) ,{call pp(#{x},#{y},#{z,mode=OUT,jdbcType=INTEGER})} 要用这种格式
{call 储存历程名(输入参数列表,输出参数列表)}
重要是这个mode=OUT为输出参数,试了许久。
3.调用
Java代码
一.SqlSession session = .......
2. Map map = new HashMap();
3. map.put("x", 一);
4. map.put("y", 二);
5. map.put("z", 零);
6. session.selectOne("emp.selectProc", map);
7. System.out.println(map.get("z"));
本文来源:
我的异常网
Java Exception
Dotnet Exception
Oracle Exception