浏览 5329 次
锁定老帖子 主题:ibatis3调用存储过程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-27
最后修改:2009-11-27
一. 首先oracle创建一个最简单的存储过程: 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是输出参数,算两者之和。 二. 在映射文件中 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="emp"> <select id="selectByProc" statementType="CALLABLE"> {call pp(#{x},#{y},#{z,mode=OUT,jdbcType=INTEGER})} </select> </mapper> 上面id随便取,statementType是关健,这里可以是"STATEMENT","PREPARED","CALLABLE"(调用存储过程) ,{call pp(#{x},#{y},#{z,mode=OUT,jdbcType=INTEGER})} 要用这种格式 {call 存储过程名(输入参数列表,输出参数列表)} 主要是这个mode=OUT为输出参数,试了好久。 三.调用 SqlSession session = ....... Map map = new HashMap(); map.put("x", 1); map.put("y", 2); map.put("z", 0); session.selectOne("emp.selectProc", map); System.out.println(map.get("z")); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-28
没有什么技术含量。为了让那些像我一样的人,少走弯路。
|
|
返回顶楼 | |