尝试使用Spring JdbcTemplate从Java访问OS400 / DB2存储过程输出参数

时间:2012-03-16 19:54:19

标签: java spring db2 jdbctemplate

尝试使用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") });

1 个答案:

答案 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");
    }
}