java建空存储过程_java – Spring的存储过程 – 从过程返回的结果总是空的

我使用

Spring的JdbcTemplate和StoredProcedure类.我无法让存储过程类为我工作.

我在oracle数据库上有一个存储过程.它的签名是

CREATE OR REPLACE PROCEDURE PRC_GET_USERS_BY_SECTION

(user_cursor OUT Pkg_Types.cursor_type

, section_option_in IN Varchar2

, section_in IN Varchar2) AS ....

哪里

TYPE cursor_type IS REF CURSOR;

我创建了以下存储过程类,以从oracle过程获取信息

private class MyStoredProcedure extends StoredProcedure

{

public MyStoredProcedure(JdbcTemplate argJdbcTemplate)

{

super(argJdbcTemplate, "PRC_GET_USERS_BY_SECTION");

declareParameter(new SqlOutParameter("output", OracleTypes.CURSOR));

declareParameter(new SqlParameter("input1", Types.VARCHAR));

declareParameter(new SqlParameter("input2", Types.VARCHAR));

compile();

}

public Map execute() {

Map inParams = new HashMap();

inParams.put("input1", "BG");

inParams.put("input2", "FE");

Map output = execute(inParams);

return output;

}

}

我在一个DAO类中的方法中调用这个方法

public List getUserListFromProcedure() throws BatchManagerException

{

MyStoredProcedure sp = new MyStoredProcedure( this.jdbcTemplate );

Map result = new HashMap();

try

{

result = sp.execute();

}

catch( DataAccessException dae)

{

}

System.out.println(result.size());

return null;

}

但是,地图的大小始终为0,所以没有任何回报.我知道数据库上有与我的输入条件匹配的行.还有我的代码工作,使用java.sql.CallableStatement与oracle存储proc进行交互 – 所以proc是好的.将OraceleTypes.CURSOR与Spring的存储过程混合是否错误?还有什么可以使用的?我也尝试过SqlReturnResultSet,也没有.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值