我有一个 Microsoft 和 Sybase 存储过程,它们将结果返回为“return @value”。我需要通过 SimpleJdbcCall 从 Java 中读取值。
是否可以?
我有一个 Microsoft 和 Sybase 存储过程,它们将结果返回为“return @value”。我需要通过 SimpleJdbcCall 从 Java 中读取值。
是否可以?
使用 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”键下的返回映射中。
Spring 从 2.x 开始就很好地支持存储过程:
http://static.springsource.org/spring/docs/2.0.x/reference/jdbc.html
这些应该可以帮你解决。