【问题标题】:Calling procedure from java code从java代码调用过程
【发布时间】:2012-08-12 16:49:37
【问题描述】:

我正在从 java 代码调用过程:

private String processData(Integer time, String jndiName) {
    CallableStatement cs = null;
    Connection conn = null;
    try {
        InitialContext ctxt = new InitialContext();
        DataSource ds = (DataSource) ctxt.lookup(jndiName);
        conn = ds.getConnection();
        cs = conn.prepareCall("{call PROC(?)}");
        cs.setInt(1, time);
        cs.execute();
    } catch (Exception e) {

    }

这个过程只是等待我设置为参数的 X 秒。

问题是:

当我使用参数time=30 调用这个过程时,这个java 函数需要多长时间?
它会等到这个过程结束还是java会运行它并继续下一个命令?

【问题讨论】:

  • 顺便说一句,有点不相关,但你应该在 finally 块中关闭连接(否则你会遇到连接泄漏)。

标签: java call procedure


【解决方案1】:

CS.execute 是一个阻塞调用,等待数据库完成过程调用然后才返回。

【讨论】:

    【解决方案2】:

    是的,它会等待,这是一个阻塞操作。

    【讨论】:

    • hm 是否有一些选项我可以在另一个线程中运行它并在应用程序中继续?
    • 创建一个实现Runnable 的类并将processData 方法包装在run 中。然后,你可以这样称呼它new Thread(new YourRunnable()).start()
    • @hudi this 可能感兴趣
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2010-09-08
    • 1970-01-01
    相关资源
    最近更新 更多