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

标签 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") });

最佳答案

要从存储过程中获取值,您需要创建自己的扩展 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");
    }
}

关于java - 尝试使用 Spring JdbcTemplate 从 Java 访问 OS400/DB2 存储过程输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9743681/

相关文章:

java - Weblogic 中的 JSTL 支持

java - 我应该在 Java 中使用什么作为同步语句的锁定对象

java - 有没有办法找出当前正在播放的歌曲,例如iTunes 使用 Java 吗?

使用内连接更新 DB2

java - 编译器有区别吗 - java

spring - 使用 junit 测试端点(POST 方法)

java - 如何使用 Spring Security 4.0.1.RELEASE 使用 Auth Token 实现 Rest Full Web 服务

java - JpaRepository 从 postgres 表中读取多次行

mysql - 哪些 DBMS 提供索引组织表?

java - CLOB 值太大,无法插入到 DB2 表中