尝试使用Spring JdbcTemplate从Java访问OS400 / DB2存储过程输出参数。我的存储过程最后一个参数是输入/输出参数如果记录被更新我将从主帧返回“Y”。有人可以告诉我如何访问第二个参数,看看它是否是“Y”
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") });
答案 0 :(得分:1)
要从存储过程中获取值,您需要创建自己的扩展StoredProcedure
的类,声明参数,然后检查从execute
调用返回的out参数:
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");
}
}