当前位置: 代码迷 >> J2EE >> Mybatis调用oracle存储过程异常有关问题
  详细解决方案

Mybatis调用oracle存储过程异常有关问题

热度:7272   发布时间:2013-02-25 21:39:56.0
Mybatis调用oracle存储过程错误问题
在调用存储过程的时候,不知道下面这段代码到底是哪里错了,总是报in或out参数索引丢失,但是我看着好像哪里都没错,想让各位大神帮忙看下,这段代码中是哪里除了问题,谢谢。

oracle存储过程:

create or replace procedure pro_dept(dname in varchar2,cur_sys out sys_refcursor)
is
begin
     open cur_sys for select * from dept where dname like '%||dname||%';
end;


xml配置:

        <resultMap type="Dept" id="getDept">
<id column="deptno" property="deptno"/>
<result column="dname" property="dname"/>
<result column="loc" property="loc"/>
</resultMap>

<!-- 调用存储过程返回结果集 -->
<select id="callProcedure1" parameterType="java.util.Map">

<![CDATA[ 
          call getuserby(#{dname,mode=IN,jdbcType=VARCHAR}, 
                         #{depts,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=getDept}) 
        ]]>

</select>


调用:

                Map<String, Object> param = new HashMap<String, Object>();
param.put("dname", "A");

procedureDao.callProcedure1(param);

List<Dept> depts = (ArrayList<Dept>)param.get("depts");

System.err.println(depts.size());


异常:

### Error querying database.  Cause: java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 2
Mybatis
引用:
引用:procedureDao.callProcedure1
你这个方法里面是怎么弄的?

下面是接口和实现类
Java code?12345678910111213141516171819public interface IProcedureDao {         List<Dept> callProcedure1(Map<S……


我凌乱了.........

    
  相关解决方案