2012-03-16 79 views
1

嘗試使用Spring JdbcTemplate從Java訪問OS400/DB2存儲過程輸出參數。如果記錄更新,我的存儲過程最後一個參數是輸入/輸出參數,我將從主框架返回「Y」。有人可以給我如何進入第二個參數,看看它是否是一個「Y」嘗試使用Spring JdbcTemplate從Java訪問OS400/DB2存儲過程輸出參數

XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("as400.xml")); 
DataSource ds = (DataSource) beanFactory.getBean("dataSource"); 
jdbc = new JdbcTemplate(ds); 
int res= jdbc.update("{CALL TESTONE(?,?)}", new Object[] { new String("JOHN"), new String("N") }); 

回答

1

爲了從存儲過程返回值的接近,你需要創建自己的類,它擴展StoredProcedure ,聲明你的參數,然後檢查從execute調用返回的輸出參數:

public final class MyProc extends StoredProcedure { 

    public MyProc() { 
     super(myDataSource, "TESTONE"); 
     declareParameter(new SqlParameter("param1", Types.CHAR)); 
     declareParameter(new SqlOutParameter("param2", Types.CHAR)); 
    } 

    public String execute(Map<?, ?> inParams) { 
     Map results = super.execute(inParams); 
     return (String) results.get("param2"); 
    } 
} 
+0

,所以我不能使用的JdbcTemplate?如果最後一段是輸入和輸出呢? – SJS 2012-03-16 20:21:23

+0

不幸的是,沒有。 JdbcTemplate不支持檢查輸出參數的值。對於一個輸入/輸出參數,'declareParameter(new SqlInOutParameter(...))'而不是 – highlycaffeinated 2012-03-16 20:23:18

+0

謝謝你在Twitter嗎? JohnathanMSmith – SJS 2012-03-16 20:39:59

相關問題