当前位置: 代码迷 >> Web前端 >> Mybatis处理存储过程返回的游标需要如何配置
  详细解决方案

Mybatis处理存储过程返回的游标需要如何配置

热度:271   发布时间:2012-07-04 19:33:55.0
Mybatis处理存储过程返回的游标需要怎么配置
目标:调用存储过程,该存储过程有一个入参(类型 long),一个出参(类型 cursor),从这个cursor中取出一个List。

存储过程:
CREATE OR REPLACE PROCEDURE GET_SOMETHING(
    SOME_NUMBER     IN NUMBER  DEFAULT 30,
    RC1 	IN OUT globalPkg.RCT1){

OPEN RC1 FOR SELECT field1, field2 FROM some_table WHERE some_conditions;

}


Java类:
public interface SomethingMapperDao { 
   
public void getSomething(SomeBean someBean);
    
}

SomeBean 是方法的参数,也是存放返回结果的地方
public class SomeBean {

private long someNumber;
private List<Something> someList;

// getters and setters

}

xml 配置文件
<resultMap id="SomethingMap" type="Something">
         <!-- id and properties -->
</resultMap> 
  
<update id="getSomething" parameterType="SomeBean" statementType="CALLABLE">
{CALL GET_SOMETHING(#{someNumber}, #{someList, mode=OUT, jdbcType=CURSOR, javaType=ResultSet, resultMap=SomethingMap}  )}        
</update>

java调用方法
SomeBean someBean =  new SomeBean();
someBean.setNum(aNumber);
SomethingMapperDao.getSomething(someBean);
return someBean.getList();

  相关解决方案