我有一个Microsoft和Sybase存储过程,返回结果为“return @value”。我需要通过SimpleJdbcCall从Java读取值。
有可能吗?
答案 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
这些应该可以解决你的问题。