[英]How read returned value from stored procedure in Spring Jdbc (without out parameters in procedure)
如何從Spring Jdbc中的存儲過程中讀取返回的值(沒有參數)?
我正在使用Sybase ASE數據庫。
程序示例:
CREATE PROCEDURE dbo.procedureA (
@a int
)
as
begin
IF EXISTS (SELECT 1 FROM dbo.T WHERE a = @a)
return 1
ELSE
return -1
end
參考: http ://www.databaseskill.com/1270151/關鍵點是:SimpleJdbcCall.withReturnValue()指示SimpleJdbcCall對象使用鍵“ RETURN_VALUE”將返回值放入結果映射中。 因此,您可以像(Integer)simpleJdbcCall.execute()。get(“ RETURN_VALUE”)一樣訪問它
對於Sybase,不需要聲明SqlOutParameter“ RETURN_VALUE”
解決此問題的最佳方法是使用Spring-Jdbc項目中的SimpleJdbcCall 。
使用SimpleJdbcCall可以為此目的聲明輸入和輸出參數。
您可以這樣做:
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(dataSource);
simpleJdbcCall.withCatalogName("dbo");
simpleJdbcCall.withProcedureName("procedureA ");
simpleJdbcCall.setAccessCallParameterMetaData(false);
simpleJdbcCall.declareParameters(new new SqlOutParameter("a",Types.NUMERIC));
simpleJdbcCall.execute();
更多信息在這里
希望能幫助到你。
盡管我自己還沒有嘗試過,但這可能會有所幫助。
public MyStoredProc(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate, "mystoredproc");
setFunction(true);
declareParameter(new SqlOutParameter("Result", Types.NUMERIC));
declareParameter(new SqlInOutParameter("otherparam1", Types.INTEGER));
declareParameter(new SqlParameter("otherparam2", Types.INTEGER));
allowsUnusedParameters();
compile();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.