如何将值传播回Java中的封闭类?

时间:2011-07-27 01:10:24

标签: java

我在看这个例子 Oracle function from Hibernate。它在解决方案中告诉:

int result = call.getInt(1); // propagate this back to enclosing class

有人能指出我如何做到这一点?

2 个答案:

答案 0 :(得分:0)

这是一个返回String而不是int并将其传播回封闭类的示例

String results = sessionFactory.getCurrentSession().doReturningWork(
    new ReturningWork<String>() {
        public String execute(Connection connection) throws SQLException {
            CallableStatement call = connection.prepareCall("{ ? = call emb_copy_tool_fc(?,?,?) }");
            call.registerOutParameter( 1, Types.VARCHAR ); // or whatever it is
            call.setString(2, t_order_headers_id);
            call.setString(3, t_new_order_headers_id);
            call.setString(4, p_by);
            call.execute();
            String result = call.getString(1); // propagate this back to enclosing class
            return result;
        }
    });

答案 1 :(得分:-1)

这是关于存储过程的输出参数。您显示的链接实际上是在成功执行后调用存储过程并从PrepareCall获取输出参数。

为此,您需要了解输出参数在SP中的工作方式。