2012-03-16 4 views
1

Spring JdbcTemplateを使用してJavaからOS400/DB2ストアード・プロシージャー出力パラメーターにアクセスしようとしています。私のストアドプロシージャの最後のパラメータは、レコードが更新された場合の入出力パラメータです。メインフレームから「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

を第二パラメータにアクセスし、それが「Y」であるかどうかを確認する方法についてのクローズをお願いすることができ、あなたはStoredProcedureを拡張する独自のクラスを作成する必要があります、あなたのパラメータを宣言した後、execute呼び出しから返されてパラメータを調べる:私はJdbcTemplateを使用することはできません

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

を??最後のパラが入力と出力の場合はどうなりますか? – SJS

+0

残念ながら、いいえ。 JdbcTemplateでは、outパラメータの値を調べることはできません。 in/outパラメータの場合、 'declareParameter(new SqlInOutParameter(...))'の代わりに – highlycaffeinated

+0

あなたはTwitterで感謝していますか? JohnathanMSmith – SJS

関連する問題