SimpleJdbcCall:获取Microsoft / Sybase存储过程调用的结果

时间:2010-12-21 13:31:28

标签: java sql-server sybase spring-jdbc

我有一个Microsoft和Sybase存储过程,返回结果为“return @value”。我需要通过SimpleJdbcCall从Java读取值。

有可能吗?

2 个答案:

答案 0 :(得分:5)

使用SqlOutPutParameters:)

以下是一个例子:

SimpleJdbcCall countryProcedure = new SimpleJdbcCall(dataSource)
        .withoutProcedureColumnMetaDataAccess()
        .withProcedureName(procedureName)
        .declareParameters(new SqlOutParameter("RETURNCODE", Types.INTEGER))
        .declareParameters(new SqlOutParameter("RETURNMSG", Types.VARCHAR));
Map result = countryProcedure.execute();
        System.out.println("RETURNCODE: " + result.get("RETURNCODE"));
        System.out.println("RETURNMSG: " + result.get("RETURNMSG"));

修改: 我看着它,有一种更简单的方法。在SimpleJdbcCall上使用WithReturnValue(),返回值将存储在“return”键下的返回Map中。

答案 1 :(得分:0)

自2.x以来,Spring已经很好地支持了存储过程:

http://static.springsource.org/spring/docs/2.0.x/reference/jdbc.html

这些应该可以解决你的问题。