解决方案 »

  1.   

    你的输出参数在程序中没有传入!!!//从游标返回结果集
    public ResultSet getCursor(String dname)
    {
    try
    {
    ......
    stmt =(CallableStatement )conn.prepareCall("call pro_dept(?,?)");
    stmt.setString(1,dname);
    //注册游标对象类型
    stmt.registerOutParameter(2,OracleTypes.CURSOR);
    stmt.execute();
    //返回结果集
    ResultSet  Rs=(ResultSet)stmt.getObject(2);
    }
    catch(Exception e)
    {
    }
    return Rs;
    }
      

  2.   


    谢谢,刚刚我按照你说的将代码进行了下修改,但是还是报了in或out索引丢失:Map<String, Object> param = new HashMap<String, Object>();
    param.put("dname", "A");
    //在这将一个游标类型传过去
    param.put("depts", OracleTypes.CURSOR);
      

  3.   

    procedureDao.callProcedure1
    你这个方法里面是怎么弄的?
      

  4.   


    下面是接口和实现类public interface IProcedureDao {

    List<Dept> callProcedure1(Map<String,Object> param);

    }public class ProcedureDaoImpl implements IProcedureDao { @Override
    public List<Dept> callProcedure1(Map<String, Object> param) {
    // TODO Auto-generated method stub
    SqlSession session = MybatisUtil.currentSession();
    IProcedureDao procedureDao = session.getMapper(IProcedureDao.class);
    List<Dept> depts = procedureDao.callProcedure1(param);
    MybatisUtil.closeSession();
    return depts;
    }}
      

  5.   


    额,这个接口就是和Mapper文件形成映射,然后通过实现类调用难道不是这样的吗?
      

  6.   


    谢谢你了,问题现在已经解决了。是我忘记加一个属性了,还有就是如果我传游标类型参数过去也是可行的。还是非常感谢你的。结贴了statementType="CALLABLE"
      

  7.   

    楼主,求java部分,和xml部分,代码,,我按照你上面代码出不来
      

  8.   

    大神们,我已经提问问题了,,知道了来这里回答下
    http://bbs.csdn.net/topics/390866155?page=1#post-398024126
      

  9.   

    楼主您的发件我这里没有收到额能不能再发下,代码贴到我那个帖子里,或者文件的话发我qq邮箱吧,[email protected]